AWS Config 규칙 및 문제 해결
관리형 및 사용자 지정 Config 규칙을 배포해 규정을 준수하지 않는 리소스를 탐지하고, SSM Automation 문서로 자동 문제 해결을 수행합니다.
AWS Config 규칙 및 문제 해결은(는) CoddyKit의 무료 AWS Solutions Architect 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AWS Solutions Architect 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AWS Solutions Architect 강의에는 총 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 defaultAWS Config Rules: 관리형 규칙
Config 규칙은 리소스가 갖추어야 할 원하는 구성 상태를 정의합니다. AWS 관리형 Config 규칙은 일반적인 규정 준수 검사를 다루도록 AWS에서 미리 만든 규칙입니다. 예를 들어 s3-bucket-public-read-prohibited는 S3 버킷을 공개적으로 읽을 수 없는지 확인하고, ec2-instance-no-public-ip는 EC2 인스턴스에 퍼블릭 IP가 없는지 확인하며, 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}'Lambda를 사용한 사용자 지정 Config 규칙
요구 사항을 충족하는 AWS 관리형 규칙이 없다면 AWS Lambda 함수를 사용하여 사용자 지정 Config 규칙을 작성할 수 있습니다. Lambda는 구성 항목을 이벤트 페이로드로 받고 COMPLIANT 또는 NON_COMPLIANT 판정을 반환해야 합니다. 사용자 지정 규칙은 조직별 이름 지정 규칙, 필수 태그, 승인된 AMI ID 또는 규정 준수 팀에서 요구하는 모든 로직을 적용할 수 있습니다. 규칙은 변경 시(리소스가 변경될 때), 주기적으로(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가 AWS-DisableS3BucketPublicReadWrite SSM 문서를 자동으로 실행하여 버킷의 퍼블릭 액세스 차단을 다시 활성화할 수 있습니다. 수정은 자동으로 즉시 수행하거나, 필요할 때 실행하는 수동 방식으로 수행할 수 있습니다.
# 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 집계
구성 집계기는 여러 AWS 계정과 리전의 Config 데이터를 하나의 계정으로 수집하여 중앙 집중식 규정 준수 보고를 지원합니다. 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 State 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:00ZAWS Config와 CloudTrail 비교
SAA-C03에서 자주 출제되는 문제는 Config와 CloudTrail을 구분하는 것입니다. CloudTrail은 누가, 무엇을, 언제, 어디에서 수행했는지(API 호출 감사 로그)를 알려 줍니다. AWS Config는 리소스가 현재 어떤 상태인지, 그리고 시간에 따라 어떤 상태였는지(구성 상태 기록 및 규정 준수)를 알려 줍니다. 두 서비스는 상호 보완적입니다. CloudTrail은 누군가 오후 3시에 ModifySecurityGroup을 호출했다는 사실을 알려 주고, Config는 보안 그룹의 변경 전후 상태를 보여 줍니다. 완전한 보안 거버넌스를 위해 두 서비스를 함께 사용하십시오.
빠른 확인
이 레슨에서 다룬 AWS Solutions Architect (SAA-C03) 개념에 대한 이해도를 확인해 보십시오.
레슨 요약
이 레슨에서는 다음을 학습했습니다. AWS Config는 시간에 따른 구성 상태를 기록하고 리소스를 규정 준수 규칙에 따라 평가합니다. 관리형 규칙과 사용자 지정 규칙은 자동 또는 필요 시 평가를 통해 수백 가지 리소스 속성을 검사합니다. 또한 SSM Automation 수정은 사람의 개입 없이 규정 미준수 리소스를 자동으로 수정할 수 있습니다. 다음으로 엔터프라이즈 규모의 거버넌스를 위한 Conformance Packs와 Organisation Trails를 살펴보겠습니다.
자주 묻는 질문
“AWS Config 규칙 및 문제 해결” 강의는 무료인가요?
네 — “AWS Config 규칙 및 문제 해결” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AWS Solutions Architect 강의 전체를 잠금 해제할 수 있습니다. AWS Solutions Architect 강의에는 총 4개의 강의가 포함되어 있습니다.
“AWS Config 규칙 및 문제 해결”에서 뭘 배우나요?
관리형 및 사용자 지정 Config 규칙을 배포해 규정을 준수하지 않는 리소스를 탐지하고, SSM Automation 문서로 자동 문제 해결을 수행합니다. 브라우저에서 직접 실행하는 실습 코드로 AWS Solutions Architect을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
AWS Solutions Architect을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 AWS Solutions Architect은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“AWS Config 규칙 및 문제 해결” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 AWS Solutions Architect 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 AWS Solutions Architect 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- CloudTrail 추적 및 이벤트 기록
- CloudTrail Insights 및 로그 파일 무결성
- AWS Config 규칙 및 문제 해결
- Conformance Packs 및 조직 추적