ایمن کردن دریاچه داده در AWS

امنیت ابری همیشه چالشی برای انتقال منابع به ابر بوده است. به خصوص با سهل انگاری مداوم در باز گذاشتن سطل ها و داده های S3 برای عموم. آمازون با حجم عظیمی از داده های موجود و نیاز به تصمیم گیری های مبتنی بر داده، خدمات بسیاری را برای ساخت و استفاده از دریاچه داده در فضای ابری ارائه می دهد. چگونه می توان با حفظ امنیت، اقدام به ساخت یک دریاچه داده در فضای ابری کرد؟ خوشبختانه آمازون سرویسی برای آن دارد. خوب، در واقع چندین سرویس.
برای هدف این مقاله، فرض می کنیم که شما داده های خود را در سطل های S3 ایجاد و ذخیره خواهید کرد.
گرفتن برخی از اصول اولیه از راه
برای شروع، اجازه دهید برخی از بهترین شیوه های اساسی را از سر راه برداریم.
خدمات مدیریت کلید
همه چیز را کاملاً رمزگذاری کنید، رمزگذاری در حالت استراحت و رمزگذاری در حین انتقال. میخواهید از سرویس مدیریت کلید برای تولید کلیدهایی که برای دریاچه دادهتان استفاده میشوند، استفاده کنید. پیشنهاد میکنم کلیدهای عملیاتی برای دادهها در CloudTrails، اعلانهای SNS، سطلهای RDS و S3 برای سرویسهایی مانند AWS Config و VPC Flow Logs ایجاد کنید. این تضمین می کند که اگر داده های حساس به طور تصادفی در گزارش ها و ارتباطات قرار داده شوند، همچنان رمزگذاری شده اند. از کلیدهای KMS مختلف برای داده های موجود در دریاچه استفاده کنید. بله، حداقل سالیانه اگر نه بیشتر، آنها را بچرخانید.
S3
باز گذاشتن سطل های S3 با پیکربندی نادرست به روی جهان، ریشه بسیاری از نقض هاست. تا همین اواخر، بهترین روش مسدود کردن تمام دسترسی های عمومی در سطح حساب کاربری است.
aws s3control put-public-access-block \
--account-id AccountId \
--public-access-block-configuration '{"BlockPublicAcls": true, "IgnorePublicAcls": true, "BlockPublicPolicy": true, "RestrictPublicBuckets": true}'
آمازون اخیراً اعلام کرده است که تنظیم پیشفرض برای سطلهای S3، عدم دسترسی عمومی است، https://aws.amazon.com/blogs/aws/heads-up-amazon-s3-security-changes-are-coming-in-april-of -2023/. من همچنان استفاده از کنترل S3 و نظارت مطلق را برای تغییرات در تنظیماتی که بعداً توضیح خواهم داد توصیه می کنم.
در حالی که رمزگذاری سمت سرور به خوبی کار می کند، من مطمئن می شوم که تمام سطل های شما با استفاده از KMS برای محافظت بیشتر از دریاچه شما رمزگذاری شده اند.
همچنین، مطمئن شوید که فقط اتصالات امن (SSL) را اجرا می کنید. اطلاعات بیشتر در https://repost.aws/knowledge-center/s3-bucket-policy-for-config-rule
EC2
اگر از خدمات EC2 به عنوان بخشی از دریاچه خود استفاده می کنید، توصیه می کنم اقداماتی را انجام دهید تا مطمئن شوید که تمام حجم های EBS به طور پیش فرض رمزگذاری شده اند.
aws ec2 enable-ebs-encryption-by-default
رمزگذاری را به طور پیشفرض در سرویسهای دیگری که ممکن است استفاده کنید مانند AWS RDS بررسی کنید.
CloudTrails
هر کاری که در AWS انجام میدهید، خواه در کنسول، رابط خط فرمان یا قالبهای CloudFormation باشد، به یک API دسترسی دارید. همه تماسهای API در CloudTrails ثبت میشوند. پیشنهاد من در اینجا ایجاد CloudTrails برای ارسال به سطل S3 و گروه گزارش CloudWatch است. اگر سازمانهای AWS دارید، از سازمان CloudTrail استفاده کنید.
من سطل S3 را پیشنهاد میکنم تا ابزار مدیریت رویداد و اطلاعات امنیتی شما (SIEM) بتواند از سطل بیرون بیاید و سپس بتوانید به راحتی داشبوردها و آلارمها را بر اساس آن دادهها جستجو کنید، توسعه دهید. ابزارهای اصلی در این زمینه عبارتند از Elastic Search-Logstash-Kibana (ELK Stack)، Splunk و AWS Opensearch.
ارسال آنها به CloudWatch به شما این امکان را می دهد که زنگ هشدارهای CloudWatch را بر اساس رویدادها ایجاد کنید. مجموعهای از رویدادها وجود دارد که میتوانید آنها را راهاندازی کنید، مانند تلاشهای غیرمجاز برای ورود به سیستم، تغییرات در گروههای امنیتی، و غیره. یکی از مواردی که من دوست دارم برای آن نظارت کنم استفاده از حساب ریشه است که هرگز نباید استفاده شود. اطلاعات بیشتر را میتوانید در https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudwatch-alarms-for-cloudtrail.html بیابید.
وظیفه نگهبانی
یکی از سادهترین سرویسهایی که میتوان آن را فعال کرد Guard Duty است و تشخیص هوشمند تهدید را ارائه میکند. دائماً سطلها، حجم کار و حسابهای شما را برای ناهنجاریها بررسی میکند. یافتهها را میتوان به Security Hub نیز ارسال کرد.
پیکربندی AWS
AWS Config پیکربندی ها را برای منابع شما ارزیابی، ممیزی و ارزیابی می کند. این می تواند زمانی که تغییرات پیکربندی وجود دارد را تشخیص دهد و به شما هشدار دهد. در هسته، بسته های سازگاری هاب امنیتی از AWS Config برای بررسی صدها قانون انطباق استفاده می کنند. در ترکیب با Security Hub، من این ابزار را برای تنظیم ایمن حساب شما بر اساس قوانین شما و سپس بازرسی زمانی که پیکربندیها تغییر میکنند مفید یافتهام. همچنین تنظیمات مسدود کردن دسترسی عمومی به سطل S3 را به خاطر دارید؟ تنظیمات را برای نظارت بر تغییرات در این تنظیمات تنظیم کنید.
ساعت ابری
قبلاً در مقاله به فعال کردن CloudTrails و ارسال آن به گروه گزارش CloudWatch اشاره کردم. دلیل اینکه من انجام این کار را پیشنهاد میکنم این است که میتوانید بر اساس دادههای موجود در این گزارشها آلارم ایجاد کنید. دسترسی غیرمجاز به منابع، ورود به سیستم، تغییرات انطباق با پیکربندی AWS، تغییرات خطمشی و غیره. اطلاعات بیشتر در مورد ایجاد این نوع هشدارها در https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_alarm_log_group_metric_filter.html موجود است.
هاب امنیتی
بهترین راهی که می توانم Security Hub را توصیف کنم، یک مکان مرکزی برای وضعیت ایمن سازی حساب شما است. این شامل بسته های انطباق از پیش ساخته شده با قوانین برای ایمن سازی منابع شما است. سایر سرویس های AWS مانند Guard Duty، AWS Config، Firewall Manager یافته ها را به هاب امنیتی ارسال می کند. ابزارهای شخص ثالث مانند Prowler نیز می توانند یافته ها را به Security Hub ارسال کنند.
وقتی برای اولین بار با Security Hub شروع میکنید، غرق در یافتهها خواهید شد. شما می خواهید این یافته ها را ارزیابی کنید و آنهایی را که منطقی هستند تصحیح کنید. اگر مواردی را کشف کردید که با آنها راحت هستید، می توانید آنها را سرکوب کنید. شما می خواهید با یک یادداشت سرکوب کنید و روشی که من با این کار اداره می کنم از طریق CLI است، که می تواند خودکار باشد، https://docs.aws.amazon.com/cli/latest/reference/securityhub/batch-update-findings .html
Security Hub در زمانبندی خود دوباره ارزیابی میکند، بنابراین راهی برای دانستن اینکه چقدر طول میکشد وجود ندارد. نکته مفید این است که از CLI برای بررسی اجباری دستی استفاده کنید. Security Hub در یک بازه زمانی، تعداد بررسیهای دستی را کاهش میدهد. اطلاعات بیشتر در https://docs.aws.amazon.com/config/latest/developerguide/evaluating-your-resources.html#evaluating-your-resources-console است.
هنگامی که Security Hub را در حالت تمیز دریافت کردید، میخواهید با استفاده از کانال دلخواه خود، چه ایمیل یا کانالهای Slack، اعلانها را تنظیم کنید، https://docs.aws.amazon.com/securityhub/latest/userguide/ securityhub-cloudwatch-events.html
پروولر
من نمی توانم در مورد امنیت AWS بدون اشاره به Open Source Prowler که ابزاری است که می توانید در برابر حساب خود برای ایجاد یافته های امنیتی اجرا کنید صحبت کنم. صدها قانون انطباق دارد. من نوشته ای در مورد نحوه استفاده از Prowler به همراه یک اسکریپت CloudFormation برای استقرار دارم. مقاله در https://dev.to/aws-builders/automating-prowler-for-compliance-checking-in-aws-3oef است.
تمام کردنش
این مقاله به هیچ وجه فهرست کاملی از کارهایی نیست که می توانید برای ایمن سازی داده های خود در فضای ابری انجام دهید. من تمام خدماتی را که استفاده کردهام یا حتی فهرستی از بررسیهای انطباق را که میتوانید اجرا کنید لمس نکردهام پوشش ندادهام. از این به عنوان نقطه شروع استفاده کنید.
آخرین نظر در مورد ایمن سازی محیط شما. همیشه از الگوهای CloudFormation، CDK یا CLI برای توسعه زیرساخت خود به عنوان کد استفاده کنید. از انجام هر یک از این کارها در کنسول خودداری کنید. این اجازه می دهد تا تمام کارهای شما قابل حمل به حساب های دیگر باشد. به من اعتماد کنید، ارزش سرمایه گذاری قبلی را دارد.