Правила AWS Config и устранение нарушений
Разворачивайте управляемые и пользовательские правила Config для обнаружения несоответствующих требованиям ресурсов и используйте документы автоматизации SSM для автоматического устранения нарушений.
«Правила AWS Config и устранение нарушений» — бесплатный урок Cloud & IT Cert Prep на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cloud & IT Cert Prep, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cloud & IT Cert Prep содержит 4 уроков всего.
Что такое AWS Config
AWS Config — это сервис непрерывного аудита конфигурации, который с течением времени записывает состояние конфигурации Ваших ресурсов AWS и оценивает эти конфигурации по заданным правилам. В отличие от CloudTrail, который записывает, кто и что сделал, AWS Config отвечает на вопросы: как этот ресурс выглядит сейчас? и как он выглядел в любой момент в прошлом? Он также отвечает на вопрос: соответствует ли эта конфигурация моей политике? — поэтому это основной сервис для управления и обеспечения соответствия требованиям.
Элементы конфигурации и история конфигурации
Когда AWS Config записывает ресурс, он создает элемент конфигурации (CI) — снимок атрибутов, взаимосвязей и метаданных ресурса на определенный момент времени. При каждом изменении ресурса записывается новый CI. AWS Config хранит полную историю конфигурации каждого ресурса, позволяя увидеть, как группа безопасности менялась на протяжении месяцев и когда именно было добавлено или удалено правило. CI доставляются в корзину S3 и, при необходимости, в CloudWatch Events.
# Get the full configuration history for an EC2 security group
aws configservice get-resource-config-history \
--resource-type AWS::EC2::SecurityGroup \
--resource-id sg-0abc1234def567890 \
--limit 10 \
--query 'configurationItems[].{Time:configurationItemCaptureTime,Status:configurationItemStatus}'Включение AWS Config
Чтобы начать использовать AWS Config, создайте регистратор конфигурации (указав типы ресурсов для записи) и канал доставки (указав корзину S3 и, при необходимости, тему SNS для уведомлений об изменениях). Можно записывать все поддерживаемые типы ресурсов или определенное подмножество. Агрегатор конфигурации позволяет объединить данные Config из нескольких учетных записей и регионов в одном представлении для подготовки отчетов о соответствии требованиям на уровне организации.
# Enable AWS Config recording for all resource types
aws configservice put-configuration-recorder \
--configuration-recorder \
name=default,roleARN=arn:aws:iam::111122223333:role/AWSConfigRole \
--recording-group allSupported=true,includeGlobalResourceTypes=true
# Set up delivery channel
aws configservice put-delivery-channel \
--delivery-channel \
name=default,s3BucketName=my-config-bucket-111122223333,snsTopicARN=arn:aws:sns:us-east-1:111122223333:ConfigChanges
aws configservice start-configuration-recorder --configuration-recorder-name defaultПравила AWS Config: управляемые правила
Правила Config определяют требуемое состояние конфигурации Ваших ресурсов. Управляемые правила Config от AWS — это готовые правила, предоставляемые AWS для распространенных проверок соответствия требованиям. Например, s3-bucket-public-read-prohibited проверяет, что корзины S3 недоступны для публичного чтения, ec2-instance-no-public-ip проверяет отсутствие публичных IP-адресов у экземпляров EC2, а iam-password-policy проверяет соответствие политики паролей учетной записи требованиям к сложности. Доступно более 300 управляемых правил.
# Add the managed rule to check S3 buckets are not publicly readable
aws configservice put-config-rule \
--config-rule '{
"ConfigRuleName": "s3-bucket-public-read-prohibited",
"Source": {
"Owner": "AWS",
"SourceIdentifier": "S3_BUCKET_PUBLIC_READ_PROHIBITED"
},
"Scope": {
"ComplianceResourceTypes": ["AWS::S3::Bucket"]
}
}'
# View compliance status of all rules
aws configservice describe-compliance-by-config-rule \
--query 'ComplianceByConfigRules[].{Rule:ConfigRuleName,Compliance:Compliance.ComplianceType}'Пользовательские правила Config с Lambda
Если ни одно управляемое правило AWS не охватывает Ваше требование, можно написать пользовательское правило Config с помощью функции AWS Lambda. Lambda получает элементы конфигурации в качестве данных события и должна вернуть вердикт COMPLIANT или NON_COMPLIANT. Пользовательские правила могут обеспечивать соблюдение соглашений об именовании в организации, наличие обязательных тегов, использование одобренных идентификаторов AMI или любой логики, необходимой Вашей команде по обеспечению соответствия требованиям. Правила могут выполняться при изменении (когда ресурс изменяется), периодически (каждые 1, 3, 6, 12 или 24 часа) или в обоих режимах.
# Register a custom Lambda-backed Config rule
aws configservice put-config-rule \
--config-rule '{
"ConfigRuleName": "required-tags-enforcer",
"Source": {
"Owner": "CUSTOM_LAMBDA",
"SourceIdentifier": "arn:aws:lambda:us-east-1:111122223333:function:RequiredTagsChecker",
"SourceDetails": [{
"EventSource": "aws.config",
"MessageType": "ConfigurationItemChangeNotification"
}]
},
"Scope": {
"ComplianceResourceTypes": ["AWS::EC2::Instance","AWS::S3::Bucket"]
}
}'Проактивные правила с CloudFormation Guard
Config также поддерживает проактивные правила с использованием AWS CloudFormation Guard — языка политик в виде кода. Проактивные правила оценивают ресурсы до их создания через CloudFormation, AWS CDK или Terraform Cloud, обнаруживая конфигурации, не соответствующие требованиям, во время развертывания, а не после их появления в рабочей среде. Это переносит контроль соответствия требованиям на более ранний этап конвейера инфраструктуры. Проактивная оценка — более новая функция, на которую экзамен SAA-C03 может ссылаться в сценариях управления с подходом «сдвиг влево».
Автоматическое устранение проблем с помощью SSM
Правила Config можно объединить с действиями автоматического устранения, чтобы исправлять ресурсы, не соответствующие требованиям, без вмешательства человека. Действия по устранению — это документы AWS Systems Manager (SSM) Automation. Например, если корзина S3 перестает соответствовать требованиям из-за включения публичного доступа, Config может автоматически запустить документ SSM AWS-DisableS3BucketPublicReadWrite, чтобы повторно включить блокировку публичного доступа к корзине. Устранение может выполняться автоматически (немедленно) или вручную (по запросу).
# Add automatic remediation to a Config rule
aws configservice put-remediation-configurations \
--remediation-configurations '[
{
"ConfigRuleName": "s3-bucket-public-read-prohibited",
"TargetType": "SSM_DOCUMENT",
"TargetId": "AWS-DisableS3BucketPublicReadWrite",
"Parameters": {
"S3BucketName": {"ResourceValue": {"Value": "RESOURCE_ID"}},
"AutomationAssumeRole": {"StaticValue": {"Values": ["arn:aws:iam::111122223333:role/ConfigRemediationRole"]}}
},
"Automatic": true,
"MaximumAutomaticAttempts": 3,
"RetryAttemptSeconds": 60
}
]'Временная шкала Config и связи ресурсов
Временная шкала ресурсов AWS Config в консоли показывает каждое изменение конфигурации ресурса в виде временной шкалы: Вы можете вернуться к любому моменту и точно увидеть, как выглядел ресурс, включая его связи с другими ресурсами (например, какие группы безопасности были подключены и какая роль IAM была связана с ним). Нажатие на связь открывает временную шкалу соответствующего ресурса. Это делает Config незаменимым инструментом анализа первопричин: Вы можете точно определить, какое изменение нарушило работу Production.
# Get current compliance status for all EC2 instances
aws configservice get-compliance-details-by-resource \
--resource-type AWS::EC2::Instance \
--resource-id i-0123456789abcdef0 \
--query 'EvaluationResults[].{Rule:EvaluationResultIdentifier.EvaluationResultQualifier.ConfigRuleName,Compliance:ComplianceType}'Агрегирование Config в разных аккаунтах
Агрегатор конфигурации собирает данные Config из нескольких аккаунтов и регионов AWS в одном аккаунте для централизованной отчётности о соответствии требованиям. В AWS Organisation Вы можете создать агрегатор в управляющем аккаунте, который автоматически включит все аккаунты участников без необходимости отдельной авторизации. Агрегаторы поддерживают запросы с помощью Advanced Queries — интерфейса, похожего на SQL, который позволяет за считанные секунды найти все ресурсы, не соответствующие требованиям, во всей организации.
# Query all non-compliant resources across an organisation using Advanced Query
aws configservice select-aggregate-resource-config \
--configuration-aggregator-name OrgAggregator \
--expression "SELECT resourceId, resourceType, accountId, awsRegion
WHERE complianceType = 'NON_COMPLIANT'
AND resourceType = 'AWS::S3::Bucket'"
--query 'Results'Устранение нарушений в большом масштабе
Если у Вас тысячи ресурсов, не соответствующих требованиям, исключения для устранения нарушений Config позволяют освободить определённые ресурсы от проверок на заданный период с указанием документированной причины — это помогает избежать ошибочного устранения проблем в обоснованных нестандартных случаях. Для масштабной очистки Вы можете массово запустить устранение вручную из консоли или использовать связи диспетчера состояний Systems Manager, чтобы по расписанию применять требуемые конфигурации к группам экземпляров EC2, объединяя обнаружение Config с принудительным применением настроек SSM.
# Add a remediation exception for a specific resource
aws configservice put-remediation-exceptions \
--config-rule-name s3-bucket-public-read-prohibited \
--resource-keys ResourceType=AWS::S3::Bucket,ResourceId=my-public-website-bucket \
--message 'Static website hosting requires public access' \
--expiration-time 2025-01-01T00:00:00ZСравнение AWS Config и CloudTrail
Один из распространённых вопросов SAA-C03 — различить Config и CloudTrail. CloudTrail отвечает на вопросы: кто, что, когда и откуда сделал (журнал аудита вызовов API). AWS Config отвечает на вопросы: как ресурс выглядит сейчас и как он выглядел раньше (история состояния конфигурации и соответствия требованиям). Эти сервисы дополняют друг друга: CloudTrail показывает, что кто-то вызвал ModifySecurityGroup в 15:00, а Config показывает состояние группы безопасности до и после изменения. Используйте их вместе для полноценного управления безопасностью.
Быстрая проверка
Проверьте своё понимание концепций AWS Solutions Architect (SAA-C03) из этого урока.
Итоги урока
В этом уроке Вы узнали, что AWS Config записывает состояние конфигурации во времени и проверяет ресурсы на соответствие правилам, управляемые и пользовательские правила проверяют сотни атрибутов ресурсов автоматически или по запросу, а автоматическое устранение нарушений с помощью SSM может исправлять несоответствия без участия человека. Далее мы рассмотрим Conformance Packs и Organisation Trails для управления инфраструктурой предприятия.
Часто задаваемые вопросы
Урок «Правила AWS Config и устранение нарушений» бесплатный?
Да — полный текст урока «Правила AWS Config и устранение нарушений» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cloud & IT Cert Prep, подпишись на CoddyKit PRO. Курс Cloud & IT Cert Prep содержит 4 уроков всего.
Чему я научусь в уроке «Правила AWS Config и устранение нарушений»?
Разворачивайте управляемые и пользовательские правила Config для обнаружения несоответствующих требованиям ресурсов и используйте документы автоматизации SSM для автоматического устранения нарушений. Ты практикуешь Cloud & IT Cert Prep с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cloud & IT Cert Prep?
Предыдущий опыт не требуется. Cloud & IT Cert Prep на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Правила AWS Config и устранение нарушений»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cloud & IT Cert Prep?
Да. Каждый урок Cloud & IT Cert Prep включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Трассы CloudTrail и история событий
- CloudTrail Insights и целостность файлов журналов
- Правила AWS Config и устранение нарушений
- Пакеты соответствия и трассы организации