مروری بر مفاهیم و منابع پیکربندی AWS

AWS Config یک سرویس کاملاً مدیریت شده است که در اختیار شما قرار می دهد موجودی منابع، تاریخچه پیکربندی و تغییر پیکربندی اطلاعیه های امنیتی و حاکمیتی
AWS Config سرویسی برای ممیزی است که تغییرات ایجاد شده در منابع AWS شما را پیگیری میکند و به شما امکان میدهد تا دادههای پیکربندی را در طول زمان برای تشخیص مشکلات امنیتی و عملیاتی بالقوه نظارت کنید.
این پست بر روی برخی از مفاهیم مقدماتی برای AWS Config تمرکز دارد که همیشه هنگام بازرسی کنسول AWS برای Config، که بسیاری از عملیاتهای زیر سطحی را برای ما انجام میدهد، در نظر نمیگیرید، اما در صورتی که میخواهید از راه دیگری برای تنظیم پیکربندی AWS خود استفاده کنید، این موارد مفاهیم بسیار مهم خواهد بود.
1. پیکربندی AWS
AWS Config یک سرویس کاملاً مدیریت شده است که در اختیار شما قرار می دهد موجودی منابع، تاریخچه پیکربندی و تغییر پیکربندی اطلاعیه های امنیتی و حاکمیتی
AWS Config نمای دقیقی از پیکربندی منابع AWS در حساب AWS شما ارائه می دهد. این شامل نحوه ارتباط منابع با یکدیگر و نحوه پیکربندی آنها در گذشته می شود تا بتوانید ببینید که چگونه پیکربندی ها و روابط در طول زمان تغییر می کنند.
AWS Config تغییرات ایجاد شده در این منابع AWS پشتیبانی شده را ردیابی می کند و تغییرات آنها را به عنوان ثبت می کند موارد پیکربندی (CI)، که هستند فایل های JSON به سطل سرویس ذخیره سازی ساده آمازون (Amazon S3) تحویل داده می شود. این فایل ها از طریق API های AWS Config و به صورت اختیاری از طریق سرویس اطلاع رسانی ساده آمازون (Amazon SNS) ارسال می شود.
2. موارد پیکربندی (CI)
یک آیتم پیکربندی نمایانگر یک نمای لحظه ای از ویژگی های مختلف یک منبع AWS پشتیبانی شده است که در حساب شما وجود دارد. اجزای یک آیتم پیکربندی شامل ابرداده ها، ویژگی ها، روابط، پیکربندی فعلی و رویدادهای مرتبط.
AWS Config ایجاد می کند مورد پیکربندی هر زمان که تغییری را در نوع منبعی که در حال ضبط است تشخیص دهد. میتوانید AWS Config را برای ایجاد یک آیتم پیکربندی در فرکانس ضبطی که تنظیم کردهاید انتخاب کنید: ضبط مداوم که هر زمان که تغییری رخ می دهد تغییرات پیکربندی را به طور مداوم ثبت می کند و ضبط روزانه که یک آیتم پیکربندی (CI) ایجاد می کند که نشان دهنده آخرین وضعیت منابع شما در دوره 24 ساعته گذشته است (فقط در صورتی که با CI قبلی ثبت شده متفاوت باشد).
در اینجا مثالی از یک آیتم پیکربندی برای یک گروه منبع آورده شده است:
{
"relatedEvents": [],
"relationships": [
{
"resourceId": "vpc-XXXXXXXXXXXX",
"resourceType": "AWS::EC2::VPC",
"name": "Is contained in Vpc"
}
],
"configuration": {
"description": "default VPC security group",
"groupName": "default",
"ipPermissions": [
{
"ipProtocol": "-1",
"ipv6Ranges": [],
"prefixListIds": [],
"userIdGroupPairs": [
{
"groupId": "sg-YYYYYYYYYYYY",
"userId": "0000000000"
}
],
"ipv4Ranges": [],
"ipRanges": []
}
],
"ownerId": "0000000000",
"groupId": "sg-YYYYYYYYYYYY",
"ipPermissionsEgress": [
{
"ipProtocol": "-1",
"ipv6Ranges": [],
"prefixListIds": [],
"userIdGroupPairs": [],
"ipv4Ranges": [
{
"cidrIp": "0.0.0.0/0"
}
],
"ipRanges": [
"0.0.0.0/0"
]
}
],
"tags": [],
"vpcId": "vpc-XXXXXXXXXXXX"
},
"supplementaryConfiguration": {},
"tags": {},
"configurationItemVersion": "1.3",
"configurationItemCaptureTime": "YYYY-MM-DDTHH:MM:SS.000Z",
"configurationStateId": 0000000000,
"awsAccountId": "0000000000",
"configurationItemStatus": "ResourceDiscovered",
"resourceType": "AWS::EC2::SecurityGroup",
"resourceId": "sg-YYYYYYYYYYYY",
"resourceName": "default",
"ARN": "arn:aws:ec2:us-east-1:0000000000:security-group/sg-YYYYYYYYYYYY",
"awsRegion": "us-east-1",
"availabilityZone": "Not Applicable",
"configurationStateMd5Hash": ""
}
3. تاریخچه پیکربندی
تاریخچه پیکربندی مجموعه ای از موارد پیکربندی برای یک نوع منبع خاص در هر دوره زمانی است. هر فایل شامل منابعی از یک نوع است، مانند نمونه های آمازون EC2 یا حجم های آمازون EBS. اگر هیچ تغییری در پیکربندی رخ ندهد، AWS Config فایلی را ارسال نمی کند.
فایلهای تاریخچه پیکربندی زمانی مفید هستند که به دنبال وضعیت پیکربندی تاریخی برای یک نوع منبع خاص هستید.
AWS Config فایل های تاریخچه پیکربندی را ارائه می دهد پس از فعال کردن Configuration Recorder و Delivery Channel به صورت خودکار به یک سطل آمازون S3 که شما مشخص می کنید AWS Config هر شش ساعت یک فایل تاریخچه پیکربندی ارسال می کند و هر فایل حاوی جزئیاتی در مورد منابعی است که در آن دوره شش ساعته تغییر کرده اند.
میتوانید یک منبع معین را در کنسول AWS Config انتخاب کنید و با استفاده از جدول زمانی به تمام موارد پیکربندی قبلی برای آن منبع بروید.
در اینجا یک نمونه از یک فایل تاریخچه پیکربندی، با یک نام در قالب است {accountId}_Config_{region}_ConfigHistory_{resourceType}_{time}
:
{ // Configuration File for AWS::S3::Bucket Resource Type
"fileVersion": "1.0",
"configurationItems": [
{
// CI S3 Bucket "A"
},
{
// CI S3 Bucket "B"
},
// Additional S3 Buckets
]
}
4. پیکربندی Snapshot
یک عکس فوری پیکربندی مجموعه ای از موارد پیکربندی برای منابع پشتیبانی شده ای است که در حساب شما وجود دارد. این عکس پیکربندی یک است ضبط لحظه به لحظه از منابعی که در حال ثبت هستند و تنظیمات آنها.
هنگامی که به دنبال وضعیت پیکربندی فعلی برای همه منابع پشتیبانی شده در یک حساب هستید، فایلهای Snapshot Configuration مفید هستند.
به صورت پیش فرض پیکربندی عکس های فوری به طور خودکار فعال نمی شوند فقط با فعال کردن ضبط پیکربندی و کانال تحویل، باید کانال تحویل را با فرکانس تحویل عکس فوری خاص 1، 3، 6، 12 یا 24 ساعت پیکربندی کنید. میتوانید عکسهای فوری پیکربندی را به سطل سرویس ذخیرهسازی ساده آمازون (Amazon S3) که مشخص کردهاید تحویل دهید.
در اینجا یک نمونه از یک فایل تاریخچه پیکربندی، با یک نام در قالب است {accountId}_Config_{region}_ConfigSnapshot_{time}
:
{
"fileVersion": "1.0",
"configSnapshotId": "677bc092-27a0-4831-9c08-012eed635738",
"configurationItems": [
{
// CI CloudFormation Stack "A"
},
{
// CI S3 Bucket "B"
},
{
// CI S3 Bucket "C"
},
{
// CI SNS Topic "D"
},
// Additional Resources
]
}
5. ضبط پیکربندی
ضبط کننده پیکربندی پیکربندی منابع پشتیبانی شده را در حساب شما به عنوان آیتم های پیکربندی ذخیره می کند. قبل از شروع ضبط، ابتدا باید ضبط کننده پیکربندی را ایجاد و سپس راه اندازی کنید. می توانید ضبط کننده پیکربندی را در هر زمانی متوقف کرده و مجدداً راه اندازی کنید.
به طور پیش فرض، ضبط کننده پیکربندی همه منابع پشتیبانی شده را در منطقه ای که AWS Config اجرا می شود، ضبط می کند. می توانید یک ضبط کننده پیکربندی سفارشی ایجاد کنید که فقط انواع منابعی را که شما مشخص کرده اید ضبط می کند.
اگر از کنسول مدیریت AWS یا CLI برای روشن کردن سرویس استفاده می کنید، AWS Config به طور خودکار یک ضبط کننده پیکربندی را برای شما ایجاد و راه اندازی می کند.
6. کانال تحویل
همانطور که AWS Config به طور مداوم تغییراتی را که در منابع AWS شما رخ می دهد ثبت می کند، اعلان ها و وضعیت های پیکربندی به روز شده را از طریق کانال تحویل ارسال می کند. تو می توانی کانال تحویل را مدیریت کنید تا کنترل کنید AWS Config بهروزرسانیهای پیکربندی را کجا ارسال میکند.
قبل از اینکه بتوانید یک کانال تحویل ایجاد کنید، باید یک ضبط کننده پیکربندی ایجاد کنید. شما می توانید تنها یک کانال تحویل در هر منطقه AWS در هر حساب AWS داشته باشید و کانال تحویل برای استفاده از AWS Config لازم است.
7. تحویل CI به آمازون S3
همانطور که در بالا ذکر شد AWS Config ارسال می کند فایل های تاریخچه پیکربندی هر شش ساعت به S3، پس از فعال کردن ضبط پیکربندی.
در صورت Snapshot های پیکربندی، زمانی ارسال می شوند که کاربر به صورت دستی تماس API DeliverConfigSnapshot را انجام دهد یا API بر اساس تنظیمات دوره ای برای عکس فوری هر 1، 3، 6، 12 یا 24 ساعت فراخوانی شود.، با توجه به تنظیمات کانال تحویل.
فایلهای Snapshot و History از فرمت یکسانی برای ذخیرهسازی در S3 استفاده میکنند و در دو پوشه مختلف به یک Bucket ارسال میشوند. ConfigHistory _و _ConfigSnapshot.
8. Config Notifications و Amazon SNS
AWS Config از موضوع Amazon SNS که به صورت اختیاری مشخص می کنید در کانال تحویل
AWS Config اعلانهایی را برای رویدادهای زیر ارسال میکند:
- تغییر آیتم پیکربندی برای یک منبع.
- سابقه پیکربندی برای یک منبع برای حساب شما تحویل داده شد.
- عکس فوری پیکربندی برای منابع ضبط شده شروع شد و برای حساب شما تحویل شد.
- وضعیت تطابق منابع شما و اینکه آیا آنها با قوانین شما مطابقت دارند یا خیر.
- ارزیابی برای قاعده ای علیه منابع شما آغاز شد.
- AWS Config نتوانست اعلان را به حساب شما ارسال کند.
9. قوانین پیکربندی
یک قانون AWS Config نشان می دهد تنظیمات مورد نظر برای یک منبع و در برابر تغییرات پیکربندی در منابع مربوطه، همانطور که توسط AWS Config ثبت شده است، ارزیابی می شود. اگر منبعی با قانون مطابقت نداشته باشد، AWS Config منبع و قانون را به عنوان ناسازگار پرچم گذاری می کند.
دو نوع قانون وجود دارد: قوانین مدیریت شده پیکربندی AWS (از پیش تعریف شده) و قوانین سفارشی پیکربندی AWS (با استفاده از توابع Lambda یا با استفاده از زبان گارد ایجاد شده است).
هنگام ایجاد یک قانون پیکربندی، می توانید آن را انتخاب کنید نوع ماشه برای تعیین اینکه قوانین پیکربندی AWS شما هر چند وقت یکبار منابع شما را ارزیابی میکنند: منابع را میتوان زمانی که تغییرات پیکربندی، در یک زمانبندی دورهای یا هر دو صورت میگیرد، ارزیابی کرد.
10. پیکربندی AWS برای سازمان های AWS
AWS Config به شما کمک میکند قوانین پیکربندی و تجسم دادهها (CI، پرسوجوها، گزارشها و غیره) را برای همه حسابهای اعضای خود با استفاده از ویژگیهای مختلف AWS Config مدیریت کنید.
برای استفاده از سرویسهای پیکربندی AWS با سازمانهای AWS، باید از آن استفاده کنید
کنش AWSServiceAccess را فعال کنید (با استفاده از API، CLI یا کنسول)، که یکپارچهسازی را فعال میکند و به AWS Config اجازه میدهد تا یک نقش مرتبط با سرویس در همه حسابهای سازمان شما ایجاد کند. این به سرویس AWS Config اجازه میدهد تا عملیاتهایی را از طرف شما در سازمان شما و حسابهای آن انجام دهد.
AWS Documentation نشان می دهد که اصول را فعال می کند config.amazonaws.com
(برای AWS Config) و config-multiaccountsetup.amazonaws.com
(برای مدیریت قوانین پیکربندی AWS چند حسابی).
مدیر تفویض اختیار برای پیکربندی AWS
سازمان های AWS به شما امکان می دهد وظایف یا مسئولیت ها را به حساب های اعضا محول کنید. حساب های عضو تعیین شده پس از آن تبدیل می شوند مدیران تفویض شده، به این معنی که می توانند الف را اجرا کنند فعالیت خاص یا مدیریت یک سرویس AWS خاص در سراسر حساب ها، از طرف سازمان.
AWS Config یکی از سرویسهای AWS است که در بین حسابها کار میکند و در سازمانهای AWS پشتیبانی میکند. Delegated Administrator از استفاده پشتیبانی می کند تجمیع کننده ها برای جمع آوری داده های منابع چند حسابی و چند منطقه ای.
اگر از یک حساب مدیریت سازمانی استفاده میکنید و میخواهید از یک سرپرست تفویض شده برای استقرار سازمانی استفاده کنید، توجه داشته باشید که AWS Config به طور خودکار نقش مرتبط با سرویس (SLR) را ایجاد نمیکند. شما باید به صورت دستی نقش مرتبط با سرویس (SLR) را به طور جداگانه با استفاده از IAM یا به طور متناوب با استفاده از EnableAWSServiceAccess API همانطور که در بالا ذکر شد ایجاد کنید.
11. قوانین سازمانی
AWS Config از قوانین سازمانی پشتیبانی می کند که به شما امکان می دهد قوانین پیکربندی AWS را در تمام حسابهای AWS در یک سازمان مدیریت کنید. تو می توانی:
- به طور مرکزی قوانین پیکربندی AWS را در همه حسابهای سازمان خود ایجاد، بهروزرسانی و حذف کنید.
- مجموعه ای مشترک از قوانین پیکربندی AWS را در همه حساب ها مستقر کنید و حساب هایی را مشخص کنید که در آن قوانین پیکربندی AWS نباید ایجاد شوند.
- از APIهای حساب مدیریت در سازمانهای AWS استفاده کنید تا با اطمینان از اینکه قوانین پیکربندی AWS اساسی توسط حسابهای عضو سازمان شما قابل تغییر نیستند، حاکمیت را اعمال کنید.
به خاطر داشته باشید که قوانین سازمانی را فقط می توان با استفاده از API یا CLI ایجاد کرد. این عملیات در کنسول AWS Config پشتیبانی نمی شود. علاوه بر این، هنگامی که قوانین سازمانی را پیکربندی میکنید، هر یک فقط میتواند شامل یک قانون پیکربندی AWS باشد، بنابراین اگر میخواهید از قوانین پیکربندی زیادی برای حسابهای سازمانی خود استفاده کنید، باید بسیاری از قوانین سازمانی جداگانه را مدیریت کنید.
12. بسته های انطباق
یک بسته انطباق یک است مجموعه ای از قوانین پیکربندی AWS و اقدامات اصلاحیاست که می تواند به راحتی به عنوان یک موجودیت واحد در یک حساب کاربری و یک منطقه یا در سراسر یک سازمان در سازمان های AWS مستقر شده است.
بستههای انطباق با نوشتن یک الگوی YAML ایجاد میشوند که حاوی فهرستی از قوانین مدیریت شده یا سفارشی AWS و اقدامات اصلاحی است. همچنین میتوانید از اسناد AWS Systems Manager (اسناد SSM) برای ذخیره الگوهای بسته انطباق خود در AWS استفاده کنید و مستقیماً بستههای انطباق را با استفاده از نام اسناد SSM گسترش دهید. می توانید با استفاده از کنسول AWS Config یا AWS CLI الگو را مستقر کنید.
13. تجمیع کنندگان
Aggregator یک نوع منبع AWS Config است که پیکربندی AWS و داده های انطباق را جمع آوری می کند از موارد زیر:
- چندین حساب و چندین منطقه AWS.
- یک حساب کاربری و چندین منطقه AWS.
- یک سازمان در سازمانهای AWS و تمام حسابهای موجود در آن سازمان که پیکربندی AWS را فعال کردهاند. از یک جمع کننده استفاده کنید پیکربندی منبع و داده های انطباق ثبت شده را مشاهده کنید در پیکربندی AWS یک تجمیع کننده از یک سطل آمازون S3 برای ذخیره داده های انباشته استفاده می کند. به طور دورهای عکسهای پیکربندی را از حسابهای منبع بازیابی میکند و آنها را در سطل S3 تعیینشده ذخیره میکند..
هنگام راهاندازی جمعآوری، باید از حساب مدیریت یا یک مدیر نمایندگی ثبتشده استفاده کنید.
منابع