기존 AWS Config 리소스가 있는 계정 등록 - AWS Control Tower

기존 AWS Config 리소스가 있는 계정 등록

이 주제에서는 기존 AWS Config 리소스가 있는 계정을 등록하는 방법에 대한 단계별 접근 방식을 제공합니다. 기존 리소스를 확인하는 방법의 예는 리소스 상태에 대한 AWS Config CLI 명령 예제 섹션을 참조하세요.

참고

기존 AWS 계정을 감사로그 아카이브 계정으로 AWS Control Tower로 가져오려는 경우 해당 계정에 기존 AWS Config 리소스가 있다면 이러한 목적으로 AWS Control Tower에 해당 계정을 등록하기 전에 기존 AWS Config 리소스를 완전히 삭제해야 합니다. 감사로그 아카이브 계정이 되지 않는 계정의 경우 기존 Config 리소스를 수정할 수 있습니다.

AWS Config 리소스의 예

다음은 계정이 이미 보유하고 있을 수 있는 몇 가지 유형의 AWS Config 리소스입니다. AWS Control Tower에 계정을 등록하려면 이러한 리소스를 수정해야 할 수 있습니다.

  • AWS Config 레코더

  • AWS Config 전송 채널

  • AWS Config 집계 권한 부여

가정
  • AWS Control Tower 랜딩 존을 배포했습니다.

  • 계정이 AWS Control Tower에 아직 등록되지 않았습니다.

  • 계정이 관리 계정에서 관리하는 AWS Control Tower 리전 중 하나 이상에 여러 개의 기존 AWS Config 리소스를 보유하고 있습니다.

  • 계정이 AWS Control Tower 관리 계정이 아닙니다.

  • 계정이 거버넌스 드리프트에 있지 않습니다.

기존 AWS Config 리소스로 계정을 등록하는 자동화된 접근 방식을 설명하는 블로그 Automate enrollment of accounts with existing AWS Config resources into AWS Control Tower를 참조하세요. 다음 1단계: AWS Control Tower 허용 목록에 계정을 추가하려면 티켓과 함께 고객 지원에 문의에 설명된 대로 등록하려는 모든 계정에 대해 단일 지원 티켓을 제출할 수 있습니다.

제한 사항
  • AWS Control Tower 워크플로를 사용하여 계정을 등록해야만 거버넌스를 확장할 수 있습니다.

  • 리소스가 수정되고 계정에 드리프트를 생성하는 경우 AWS Control Tower는 리소스를 업데이트하지 않습니다.

  • AWS Config AWS Control Tower에서 관리하지 않는 리전의 리소스는 변경되지 않습니다.

참고

허용 목록에 계정을 추가하지 않고 기존 Config 리소스가 있는 계정을 등록하려고 하면 등록이 실패합니다. 이후 동일한 계정을 허용 목록에 추가하려고 하면 AWS Control Tower에서 계정이 올바르게 프로비저닝되었는지 확인할 수 없습니다. 허용 목록을 요청한 다음 등록하려면 먼저 AWS Control Tower에서 계정 프로비저닝을 취소해야 합니다. 계정을 다른 AWS Control Tower OU로 옮기기만 하면 거버넌스 드리프트가 발생하므로, 계정이 허용 목록에 추가되지 않습니다.

이 프로세스에는 5가지 주요 단계가 있습니다.
  1. AWS Control Tower 허용 목록에 계정을 추가합니다.

  2. 계정에서 새 IAM 역할을 만듭니다.

  3. 기존 AWS Config 리소스를 수정합니다.

  4. 리소스가 없는 AWS 리전에서 AWS Config 리소스를 만듭니다.

  5. 계정을 AWS Control Tower에 등록합니다.

계속하기 전에 이 프로세스에서 어떤 점을 기대할 수 있는지 살펴보세요.
  • AWS Control Tower는 이 계정에 AWS Config 리소스를 생성하지 않습니다.

  • 등록 후 AWS Control Tower 제어는 새 IAM 역할을 포함하여 사용자가 만든 AWS Config 리소스를 자동으로 보호합니다.

  • 등록 후 AWS Config 리소스가 변경되는 경우 계정을 재등록하려면 먼저 AWS Control Tower 설정에 맞게 해당 리소스를 업데이트해야 합니다.

1단계: AWS Control Tower 허용 목록에 계정을 추가하려면 티켓과 함께 고객 지원에 문의

티켓 제목 줄에 다음 문구를 포함합니다.

AWS Control Tower에 기존 AWS Config 리소스가 있는 계정 등록

티켓 본문에 다음 세부 정보를 포함합니다.
  • 관리 계정 번호

  • 기존 AWS Config 리소스가 있는 멤버 계정의 계정 번호

  • AWS Control Tower 설정을 위해 선택한 홈 리전

참고

허용 목록에 계정을 추가하는 데 필요한 시간은 영업일 기준 2일입니다.

2단계: 멤버 계정에서 새 IAM 역할 생성

  1. 멤버 계정의 AWS CloudFormation 콘솔을 엽니다.

  2. 다음 템플릿을 사용하여 새 스택을 만듭니다.

    AWSTemplateFormatVersion: 2010-09-09 Description: Configure AWS Config Resources: CustomerCreatedConfigRecorderRole: Type: AWS::IAM::Role Properties: RoleName: aws-controltower-ConfigRecorderRole-customer-created AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: Service: - config.amazonaws.com Action: - sts:AssumeRole Path: / ManagedPolicyArns: - arn:aws:iam::aws:policy/service-role/AWS_ConfigRole - arn:aws:iam::aws:policy/ReadOnlyAccess
  3. 스택의 이름을 CustomerCreatedConfigRecorderRoleForControlTower로 입력합니다.

  4. 스택을 생성합니다.

참고

직접 만든 모든 SCP는 aws-controltower-ConfigRecorderRole* 역할을 제외해야 합니다. AWS Config 규칙이 평가를 수행하는 기능을 제한하는 권한을 수정하지 마세요.

Config를 직접 호출하는 aws-controltower-ConfigRecorderRole*을 차단하는 SCP가 있는 경우 AccessDeniedException을 받지 않도록 다음 지침을 따르세요.

3단계: 기존 리소스로 AWS 리전 식별

계정의 관리되는 각 리전(AWS Control Tower 관리 대상)에 대해 이전에 표시된 기존 AWS Config 리소스 예제 유형 중 하나 이상이 있는 리전을 식별하고 기록해 둡니다.

4단계: AWS Config 리소스가 없는 AWS 리전 식별

계정의 관리되는 각 리전(AWS Control Tower 관리 대상)에 대해 이전에 표시된 AWS Config 리소스 예제 유형이 없는 리전을 식별하고 기록해 둡니다.

5단계: 각 AWS 리전의 기존 리소스 수정

이 단계에서는 AWS Control Tower 설정에 대한 다음 정보가 필요합니다.

  • LOGGING_ACCOUNT - 로깅 계정 ID

  • AUDIT_ACCOUNT - 감사 계정 ID

  • IAM_ROLE_ARN - 1단계에서 만든 IAM 역할 ARN

  • ORGANIZATION_ID - 관리 계정의 조직 ID

  • MEMBER_ACCOUNT_NUMBER - 수정 중인 멤버 계정

  • HOME_REGION - AWS Control Tower 설정을 위한 홈 리전

다음 섹션 5a~5c에 제공된 지침에 따라 각 기존 리소스를 수정합니다.

5a단계. AWS Config 레코더 리소스

AWS 리전당 하나의 AWS Config 레코더만 존재할 수 있습니다. 있는 경우 그림과 같이 설정을 수정합니다. GLOBAL_RESOURCE_RECORDING 항목을 홈 리전에서 true로 교체합니다. AWS Config 레코더가 있는 다른 리전의 경우 항목을 false로 교체합니다.

  • 이름: 변경 금지

  • RoleARN: IAM_ROLE_ARN

    • RecordingGroup:

    • AllSupported: true

    • IncludeGlobalResourceTypes: GLOBAL_RESOURCE_RECORDING

    • ResourceTypes: 비어 있음

이 수정은 다음 명령을 사용하여 AWS CLI를 통해 수행할 수 있습니다. RECORDER_NAME 문자열을 기존 AWS Config 레코더 이름으로 교체합니다.

aws configservice put-configuration-recorder --configuration-recorder name=RECORDER_NAME,roleARN=arn:aws:iam::MEMBER_ACCOUNT_NUMBER:role/aws-controltower-ConfigRecorderRole-customer-created --recording-group allSupported=true,includeGlobalResourceTypes=GLOBAL_RESOURCE_RECORDING --region CURRENT_REGION

5b단계. AWS Config 전송 채널 리소스 수정

리전당 하나의 AWS Config 전송 채널만 존재할 수 있습니다. 다른 설정이 있는 경우 그림과 같이 설정을 수정합니다.

  • 이름: 변경 금지

  • ConfigSnapshotDeliveryProperties: TwentyFour_Hours

  • S3BucketName: AWS Control Tower 로깅 계정의 로깅 버킷 이름

    aws-controltower-logs-LOGGING_ACCOUNT-HOME_REGION

  • S3KeyPrefix: ORGANIZATION_ID

  • SnsTopicARN: 감사 계정의 SNS 주제 ARN으로, 형식은 다음과 같습니다.

    arn:aws:sns:CURRENT_REGION:AUDIT_ACCOUNT:aws-controltower-AllConfigNotifications

이 수정은 다음 명령을 사용하여 AWS CLI를 통해 수행할 수 있습니다. DELIVERY_CHANNEL_NAME 문자열을 기존 AWS Config 레코더 이름으로 교체합니다.

aws configservice put-delivery-channel --delivery-channel name=DELIVERY_CHANNEL_NAME,s3BucketName=aws-controltower-logs-LOGGING_ACCOUNT_ID-HOME_REGION,s3KeyPrefix="ORGANIZATION_ID",configSnapshotDeliveryProperties={deliveryFrequency=TwentyFour_Hours},snsTopicARN=arn:aws:sns:CURRENT_REGION:AUDIT_ACCOUNT:aws-controltower-AllConfigNotifications --region CURRENT_REGION

5c단계. AWS Config 집계 권한 부여 리소스 수정

리전당 여러 집계 권한 부여가 존재할 수 있습니다. AWS Control Tower에는 감사 계정을 권한 있는 계정으로 지정하고 AWS Control Tower의 홈 리전을 권한 있는 리전으로 사용하는 집계 권한 부여가 필요합니다. 없는 경우 다음 설정으로 새 설정을 만듭니다.

  • AuthorizedAccountId: 감사 계정 ID

  • AuthorizedAwsRegion: AWS Control Tower 설정을 위한 홈 리전

이 수정은 다음 명령을 사용하여 AWS CLI를 통해 수행할 수 있습니다.

aws configservice put-aggregation-authorization --authorized-account-id AUDIT_ACCOUNT_ID --authorized-aws-region HOME_REGION --region CURRENT_REGION

6단계: AWS Control Tower에서 관리하는 리전에서 존재하지 않는 리소스 생성

AWS CloudFormation 템플릿을 수정하여 다음 예제에서처럼 홈 리전에서 IncludeGlobalResourcesTypes 파라미터가 GLOBAL_RESOURCE_RECORDING 값을 가지도록 합니다. 또한, 이 섹션에 지정된 대로 템플릿의 필수 필드를 업데이트합니다.

GLOBAL_RESOURCE_RECORDING 항목을 홈 리전에서 true로 교체합니다. AWS Config 레코더가 있는 다른 리전의 경우 항목을 false로 교체합니다.

  1. 관리 계정의 AWS CloudFormation 콘솔로 이동합니다.

  2. CustomerCreatedConfigResourcesForControlTower라는 이름으로 새 StackSets를 만듭니다.

  3. 다음 템플릿을 복사하고 업데이트합니다.

    AWSTemplateFormatVersion: 2010-09-09 Description: Configure AWS Config Resources: CustomerCreatedConfigRecorder: Type: AWS::Config::ConfigurationRecorder Properties: Name: aws-controltower-BaselineConfigRecorder-customer-created RoleARN: !Sub arn:aws:iam::${AWS::AccountId}:role/aws-controltower-ConfigRecorderRole-customer-created RecordingGroup: AllSupported: true IncludeGlobalResourceTypes: GLOBAL_RESOURCE_RECORDING ResourceTypes: [] CustomerCreatedConfigDeliveryChannel: Type: AWS::Config::DeliveryChannel Properties: Name: aws-controltower-BaselineConfigDeliveryChannel-customer-created ConfigSnapshotDeliveryProperties: DeliveryFrequency: TwentyFour_Hours S3BucketName: aws-controltower-logs-LOGGING_ACCOUNT-HOME_REGION S3KeyPrefix: ORGANIZATION_ID SnsTopicARN: !Sub arn:aws:sns:${AWS::Region}:AUDIT_ACCOUNT:aws-controltower-AllConfigNotifications CustomerCreatedAggregationAuthorization: Type: "AWS::Config::AggregationAuthorization" Properties: AuthorizedAccountId: AUDIT_ACCOUNT AuthorizedAwsRegion: HOME_REGION
    필수 필드로 템플릿을 업데이트합니다.
    1. S3BucketName 필드에서 LOGGING_ACCOUNT_IDHOME_REGION을 바꿉니다.

    2. S3KeyPrefix 필드에서 ORGANIZATION_ID를 바꿉니다.

    3. SnsTopicARN 필드에서 AUDIT_ACCOUNT를 바꿉니다.

    4. AuthorizedAccountId 필드에서 AUDIT_ACCOUNT를 바꿉니다.

    5. AuthorizedAwsRegion 필드에서 HOME_REGION을 바꿉니다.

  4. AWS CloudFormation 콘솔에서 배포하는 동안 멤버 계정 번호를 추가합니다.

  5. 4단계에서 식별된 AWS 리전을 추가합니다.

  6. 스택 세트를 배포합니다.

7단계: AWS Control Tower에 OU 등록

AWS Control Tower 대시보드에서 OU를 등록합니다.

참고

이 작업에서는 계정 등록 워크플로가 성공하지 않습니다. OU 등록 또는 OU 재등록을 선택해야 합니다.