برنامه نویسی

نحوه خودکارسازی بررسی انطباق با AWS Audit Manager

AWS Audit Manager سرویسی است که فرآیند ممیزی و مدیریت چارچوب های انطباق در AWS را ساده می کند. چارچوب های حسابرسی از پیش ساخته و قابل تنظیم را برای کمک به ارزیابی انطباق سازمان خود با استانداردهای صنعتی و نظارتی، مانند SOC 2، HIPAA، و PCI DSS ارائه می دهد. AWS Audit Manager همچنین با سایر سرویس‌های AWS مانند AWS Config و AWS CloudTrail یکپارچه می‌شود تا جمع‌آوری شواهد را خودکار کند و اطمینان حاصل کند که زیرساخت شما با الزامات حسابرسی شما مطابقت دارد.

با این حال، حتی با کمک مدیریت حسابرسی AWS، بررسی‌های انطباق همچنان می‌تواند زمان‌بر و مستعد خطا باشد اگر به صورت دستی انجام شود. در این مقاله، نحوه خودکارسازی بررسی‌های انطباق با AWS Audit Manager با استفاده از AWS Lambda را بررسی خواهم کرد. به طور خاص، ما یک تابع Lambda ایجاد خواهیم کرد که روزانه اجرا می شود و با استفاده از یک چارچوب ممیزی سفارشی، بررسی های انطباق را در یک سطل S3 انجام می دهد.

پیش نیازها
قبل از شروع، من باید پیش نیازهای زیر را تنظیم کنم:

  1. یک حساب AWS با مجوز برای ایجاد نقش‌های IAM، توابع Lambda و منابع مدیریت حسابرسی AWS.
  2. یک سطل S3 که می خواهید حسابرسی کنید. این سطل باید دارای اشیایی باشد که باید با چارچوب حسابرسی سفارشی شما مطابقت داشته باشند.
  3. یک چارچوب حسابرسی سفارشی AWS Audit Manager که کنترل‌هایی را که می‌خواهید بر روی سطل S3 اعمال کنید، تعریف می‌کند. می‌توانید با پیروی از دستورالعمل‌های مستندات مدیریت حسابرسی AWS، یک چارچوب حسابرسی سفارشی ایجاد کنید.
  4. یک تابع AWS Lambda که بررسی های انطباق را در سطل S3 انجام می دهد. این تابع را در قسمت های زیر ایجاد می کنیم.

ایجاد تابع لامبدا
در این بخش، من یک تابع Lambda ایجاد می کنم که با استفاده از چارچوب ممیزی سفارشی ما، بررسی های انطباق را در یک سطل S3 انجام می دهد.

مرحله 1: یک نقش IAM برای تابع Lambda ایجاد کنید
ابتدا یک نقش IAM ایجاد می کنیم که تابع Lambda از آن برای تعامل با سرویس های AWS استفاده می کند.

  1. کنسول IAM را باز کنید.
  2. در منوی ناوبری سمت چپ روی “نقش ها” کلیک کنید.
  3. روی “ایجاد نقش” کلیک کنید.
  4. “Lambda” را به عنوان موجودیت مورد اعتماد انتخاب کنید و روی “Next: Permissions” کلیک کنید.
  5. خط مشی “AWSAuditManagerFullAccess” را جستجو و انتخاب کنید. این خط‌مشی دسترسی کامل به منابع مدیریت حسابرسی AWS را می‌دهد، که برای تعامل عملکرد Lambda ما با مدیر حسابرسی AWS لازم است.
  6. روی «بعدی: برچسب‌ها» کلیک کنید، هر برچسبی را که می‌خواهید اضافه کنید و روی «بعدی: مرور» کلیک کنید.
  7. یک نام برای نقش وارد کنید، مانند “Lambda-Audit-Role” و روی “ایجاد نقش” کلیک کنید.

مرحله 2: تابع Lambda را ایجاد کنید
اکنون، ما تابع Lambda را ایجاد می کنیم که با استفاده از چارچوب ممیزی سفارشی، بررسی های انطباق را در سطل S3 انجام می دهد.

  1. کنسول لامبدا را باز کنید.
  2. روی “ایجاد تابع” کلیک کنید.
  3. “نویسنده از ابتدا” را انتخاب کنید و یک نام برای عملکرد خود وارد کنید، مانند “S3-Audit-Function”.
  4. زمان اجرا را به عنوان “Python 3.8” انتخاب کنید.
  5. گزینه «استفاده از نقش موجود» را انتخاب کنید و نقش IAM «Lambda-Audit-Role» را که در مرحله قبل ایجاد کردید انتخاب کنید.
  6. برای ایجاد تابع روی “ایجاد تابع” کلیک کنید.

مرحله 3: کد را برای انجام بررسی های انطباق اضافه کنید
اکنون که تابع Lambda را ایجاد کرده‌ایم، بیایید کدی را برای انجام بررسی‌های انطباق در سطل S3 با استفاده از چارچوب ممیزی سفارشی خود اضافه کنیم.

  1. در ویرایشگر کد تابع Lambda، کد موجود را با کد زیر جایگزین کنید:
import boto3
import json

def lambda_handler(event, context):
    # Define the AWS services and resources we'll be working with
    audit_manager = boto3.client('auditmanager')
    s3 = boto3.client('s3')

    # Define the audit manager assessment ID and the S3 bucket to audit
    assessment_id = 'INSERT_ASSESSMENT_ID_HERE'
    bucket_name="INSERT_BUCKET_NAME_HERE"

    # Get the list of objects in the S3 bucket
    response = s3.list_objects_v2(Bucket=bucket_name)
    objects = response['Contents']

    # Define the list of evidence we'll collect for the S3 bucket
    evidence = []

    # Loop through each object in the S3 bucket and collect evidence
    for obj in objects:
        # Define the evidence for each object
        object_evidence = {
            'dataSource': 'AWS:S3:Object',
            'eventName': 's3:ObjectCreated:*',
            'eventTime': obj['LastModified'].isoformat(),
            'awsAccountId': context.invoked_function_arn.split(':')[4],
            'awsRegion': context.invoked_function_arn.split(':')[3],
            'awsPartition': 'aws',
            'eventSource': 'aws.s3',
            'requestParameters': {
                'bucketName': bucket_name,
                'key': obj['Key']
            },
            'resourceType': 'AWS:S3:Object',
            'resourceName': f'arn:aws:s3:::{bucket_name}/{obj["Key"]}',
            'complianceType': 'COMPLIANT',
            'title': f'{obj["Key"]} is compliant'
        }

        # Add the evidence to the list
        evidence.append(object_evidence)

    # Define the assessment report for the S3 bucket
    assessment_report = {
        'evidence': evidence,
        'assessmentReportDescription': 'Assessment report for S3 bucket compliance',
        'roles': [
            {
                'roleArn': context.invoked_function_arn.split(':')[0] + ':iam::' + context.invoked_function_arn.split(':')[4] + ':role/Lambda-Audit-Role',
                'roleType': 'PROCESS_OWNER'
            }
        ]
    }

    # Submit the assessment report to AWS Audit Manager
    audit_manager.create_assessment_report(
        assessmentId=assessment_id,
        assessmentReport=assessment_report
    )

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  1. جای‌بان‌های INSERT_ASSESSMENT_ID_HERE و INSERT_BUCKET_NAME_HERE را با شناسه ارزیابی واقعی و نام سطل S3 که می‌خواهید بازرسی کنید، جایگزین کنید.
  2. برای ذخیره عملکرد Lambda روی “ذخیره” کلیک کنید.

راه اندازی یک رویداد CloudWatch برای فعال کردن عملکرد Lambda
اکنون که تابع Lambda را ایجاد کرده‌ایم، باید یک رویداد CloudWatch راه‌اندازی کنیم تا عملکرد روزانه را فعال کند.

  1. کنسول CloudWatch را باز کنید.
  2. روی “قوانین” در منوی ناوبری سمت چپ کلیک کنید.
  3. روی “ایجاد قانون” کلیک کنید.
  4. در بخش «منبع رویداد»، «زمان‌بندی» را انتخاب کرده و گزینه «نرخ ثابت» را انتخاب کنید. در قسمت “ساعت” “24” را وارد کنید.
  5. در بخش «هدف‌ها»، «تابع لامبدا» را انتخاب کنید و تابع لامبدا را که در قسمت قبل ایجاد کردید انتخاب کنید.
  6. روی “پیکربندی جزئیات” کلیک کنید و یک نام برای قانون رویداد CloudWatch، مانند “Daily-S3-Audit” وارد کنید.
  7. برای ایجاد قانون رویداد CloudWatch روی «ایجاد قانون» کلیک کنید.

نتیجه
در این مقاله، نحوه خودکارسازی بررسی‌های انطباق با AWS Audit Manager را با استفاده از یک تابع Lambda و یک رویداد CloudWatch بررسی کردیم. ما با بحث در مورد اهمیت انطباق در دنیای تجارت امروز و اینکه چگونه مدیر حسابرسی AWS می تواند به خودکارسازی بررسی های انطباق کمک کند، شروع کردیم.

در مرحله بعد، ما به مراحل مربوط به راه‌اندازی حسابرسی در AWS Audit Manager و نحوه ایجاد یک تابع Lambda برای جمع‌آوری شواهد و ارائه گزارش ارزیابی به مدیر حسابرسی نگاه کردیم.

ما قطعات کد را ارائه کردیم و نحوه تنظیم نقش IAM، خط مشی و مجوزهای مورد نیاز برای اجرای تابع Lambda را توضیح دادیم.

در نهایت، نحوه تنظیم یک رویداد CloudWatch برای فعال کردن عملکرد Lambda را به صورت روزانه مورد بحث قرار دادیم.

با خودکارسازی بررسی‌های انطباق با AWS Audit Manager، کسب‌وکارها می‌توانند خطر عدم انطباق را کاهش دهند و از جریمه‌ها و جریمه‌های پرهزینه اجتناب کنند. با کمک مجموعه ابزارها و خدمات قدرتمند AWS، کسب‌وکارها می‌توانند اطمینان حاصل کنند که با مقررات و استانداردهای صنعت مطابقت دارند و به آنها آرامش خاطری می‌دهد که برای تمرکز بر اهداف اصلی کسب‌وکارشان نیاز دارند.

منابع

  1. مستندات رسمی AWS Audit Manager: https://aws.amazon.com/audit-manager/
  2. اسناد رسمی AWS Lambda: https://aws.amazon.com/lambda/
  3. مستندات رسمی AWS CloudWatch: https://aws.amazon.com/cloudwatch/
  4. اسناد رسمی AWS Identity and Access Management (IAM): https://aws.amazon.com/iam/

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا