أمان AWS: دليل شامل
تعرّف على أفضل ممارسات الأمان لحماية بنيتك التحتية على AWS.
I
InSkillCoach
· دقيقة
أمان AWS: دليل شامل
تعرّف على الاستراتيجيات والأدوات اللازمة لتأمين بنيتك التحتية على AWS بفعالية.
1. إدارة الهويات
إعداد IAM
# مثال على إعداد IAM آمن
import boto3
def setup_secure_iam():
iam = boto3.client('iam')
# إنشاء مجموعة مع سياسة أمان
security_group = iam.create_group(GroupName='SecurityGroup')
# سياسة الأمان الدنيا
security_policy = {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iam:GetUser",
"iam:ListUsers",
"iam:ListGroups"
],
"Resource": "*"
}
]
}
# إرفاق السياسة
iam.put_group_policy(
GroupName='SecurityGroup',
PolicyName='SecurityPolicy',
PolicyDocument=json.dumps(security_policy)
)
return security_group['Group']['GroupName']
إدارة MFA
# مثال على إعداد MFA
def setup_mfa(username):
iam = boto3.client('iam')
try:
# إنشاء مفتاح MFA افتراضي
response = iam.create_virtual_mfa_device(
VirtualMFADeviceName=f'{username}-mfa'
)
# الربط مع المستخدم
iam.enable_mfa_device(
UserName=username,
SerialNumber=response['VirtualMFADevice']['SerialNumber'],
AuthenticationCode1='123456',
AuthenticationCode2='654321'
)
return True
except Exception as e:
print(f"Erreur lors de la configuration MFA: {e}")
return False
2. أمان الشبكة
إعداد VPC
# مثال على إعداد VPC آمن
def setup_secure_vpc():
ec2 = boto3.client('ec2')
# إنشاء VPC
vpc_response = ec2.create_vpc(
CidrBlock='10.0.0.0/16',
TagSpecifications=[
{
'ResourceType': 'vpc',
'Tags': [
{'Key': 'Name', 'Value': 'SecureVPC'},
{'Key': 'Security', 'Value': 'High'}
]
}
]
)
# إعداد مجموعات الأمان
security_group = ec2.create_security_group(
GroupName='SecureGroup',
Description='Groupe de sécurité avec règles strictes',
VpcId=vpc_response['Vpc']['VpcId']
)
# قواعد أمان صارمة
ec2.authorize_security_group_ingress(
GroupId=security_group['GroupId'],
IpPermissions=[
{
'IpProtocol': 'tcp',
'FromPort': 443,
'ToPort': 443,
'IpRanges': [{'CidrIp': '0.0.0.0/0'}]
}
]
)
return {
'vpc_id': vpc_response['Vpc']['VpcId'],
'security_group_id': security_group['GroupId']
}
إعداد جدار الحماية
# مثال على إعداد جدار الحماية في AWS
def setup_aws_firewall():
network_firewall = boto3.client('network-firewall')
# إنشاء قاعدة لجدار الحماية
firewall_rule = {
'RuleName': 'SecureRule',
'Priority': 1,
'Action': 'Block',
'RuleDefinition': {
'MatchAttributes': {
'Sources': [{'AddressDefinition': '0.0.0.0/0'}],
'Destinations': [{'AddressDefinition': '10.0.0.0/16'}],
'Protocols': ['TCP', 'UDP'],
'SourcePorts': [{'FromPort': 0, 'ToPort': 65535}],
'DestinationPorts': [{'FromPort': 0, 'ToPort': 65535}]
}
}
}
# تطبيق القاعدة
response = network_firewall.create_rule_group(
RuleGroupName='SecureRuleGroup',
Rules=[firewall_rule]
)
return response['RuleGroup']['RuleGroupId']
3. حماية البيانات
تشفير S3
# مثال على إعداد تشفير S3
def setup_s3_encryption():
s3 = boto3.client('s3')
# إعداد التشفير الافتراضي
encryption_config = {
'Rules': [
{
'ApplyServerSideEncryptionByDefault': {
'SSEAlgorithm': 'AES256'
}
}
]
}
# تطبيق التشفير
s3.put_bucket_encryption(
Bucket='mon-bucket-securise',
ServerSideEncryptionConfiguration=encryption_config
)
# إعداد سياسة الـ bucket
bucket_policy = {
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyUnencryptedObjectUploads",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::mon-bucket-securise/*",
"Condition": {
"StringNotEquals": {
"s3:x-amz-server-side-encryption": "AES256"
}
}
}
]
}
s3.put_bucket_policy(
Bucket='mon-bucket-securise',
Policy=json.dumps(bucket_policy)
)
الحماية باستخدام KMS
# مثال على استخدام KMS للتشفير
def encrypt_with_kms():
kms = boto3.client('kms')
# إنشاء مفتاح KMS
key_response = kms.create_key(
Description='Clé de chiffrement sécurisée',
KeyUsage='ENCRYPT_DECRYPT',
Origin='AWS_KMS'
)
# تشفير البيانات
data = "Données sensibles"
response = kms.encrypt(
KeyId=key_response['KeyMetadata']['KeyId'],
Plaintext=data.encode('utf-8')
)
return {
'key_id': key_response['KeyMetadata']['KeyId'],
'encrypted_data': response['CiphertextBlob']
}
4. المراقبة والكشف
إعداد CloudWatch
# مثال على إعداد CloudWatch للأمان
def setup_security_monitoring():
cloudwatch = boto3.client('cloudwatch')
# إنشاء إنذار أمني
alarm_config = {
'AlarmName': 'SecurityAlarm',
'MetricName': 'FailedLoginAttempts',
'Namespace': 'SecurityMetrics',
'Statistic': 'Sum',
'Period': 300,
'EvaluationPeriods': 1,
'Threshold': 5,
'ComparisonOperator': 'GreaterThanThreshold',
'AlarmActions': ['arn:aws:sns:region:account:SecurityTopic']
}
cloudwatch.put_metric_alarm(**alarm_config)
# إعداد سجلات الأمان
log_group = cloudwatch.create_log_group(
logGroupName='/aws/security',
retentionInDays=30
)
return {
'alarm_name': alarm_config['AlarmName'],
'log_group': log_group['logGroupName']
}
إعداد GuardDuty
# مثال على إعداد GuardDuty
def setup_guardduty():
guardduty = boto3.client('guardduty')
# تفعيل GuardDuty
detector = guardduty.create_detector(
Enable=True,
FindingPublishingFrequency='FIFTEEN_MINUTES'
)
# إعداد قواعد الكشف
rule_config = {
'Name': 'SecurityRule',
'Description': 'Règle de détection des menaces',
'Action': 'BLOCK',
'Criteria': {
'ThreatDetected': {
'Condition': 'EQUALS',
'Value': 'TRUE'
}
}
}
guardduty.create_filter(
DetectorId=detector['DetectorId'],
Name='SecurityFilter',
Action='BLOCK',
FindingCriteria=rule_config['Criteria']
)
return detector['DetectorId']
5. أفضل الممارسات
التدقيق الأمني
# مثال على تدقيق أمني
def perform_security_audit():
audit_results = {
'iam_audit': audit_iam_configuration(),
'network_audit': audit_network_security(),
'data_audit': audit_data_protection(),
'compliance_audit': audit_compliance()
}
# إنشاء التقرير
report = generate_security_report(audit_results)
# إرسال التنبيهات عند الحاجة
if report['risk_level'] > 7:
send_security_alert(report)
return report
التحديثات الأمنية
# مثال على تحديث أمني
def update_security_config():
# التحقق من التحديثات الأمنية
security_updates = check_security_updates()
# تطبيق التحديثات
for update in security_updates:
if update['priority'] == 'HIGH':
apply_security_update(update)
notify_security_team(update)
# التحقق بعد التحديث
verify_security_config()
return {
'updates_applied': len(security_updates),
'security_status': 'UPDATED'
}
الخاتمة
النقاط الرئيسية التي يجب تذكّرها:
- إرساء إدارة هويات قوية
- تأمين الشبكة باستخدام VPC وجدران الحماية
- حماية البيانات بالتشفير
- مراقبة التهديدات واكتشافها
- إجراء عمليات تدقيق منتظمة
التوصيات:
- استخدام MFA لجميع الحسابات
- إعداد مجموعات أمان صارمة
- تفعيل التشفير افتراضيًا
- إرساء مراقبة مستمرة
- اتباع أفضل ممارسات AWS
نبذة عن InSkillCoach
خبير في التدريب والتقنيات
مدرّب متخصص في التقنيات المتقدمة والذكاء الاصطناعي، تدعمه شركة GNeurone Inc.
الشهادات:
- AWS Certified Solutions Architect – Professional
- شهادات Google Cloud
- Microsoft Certified: DevOps Engineer Expert
- Certified Kubernetes Administrator (CKA)
- CompTIA Security+
573
295
التعليقات
التعليقات مدعومة عبر GitHub Discussions
سجّل الدخول باستخدام GitHub للمشاركة في النقاش