AWS Config 전송 채널을 다시 생성하려면 어떻게 해야 하나요?

5분 분량
0

내 AWS Config 전송 채널을 삭제했습니다. 다시 생성하려면 어떻게 해야 하나요?

간략한 설명

AWS Config 콘솔을 사용하여 AWS Config를 설정할 때 전송 채널로 알림을 보내도록 AWS 리소스를 구성하는 단계를 안내하는 설정 프로세스가 나타납니다. AWS Config 설정에는 기록할 Amazon Simple Storage Service(S3) 버킷, Amazon Simple Notification Service(SNS) 주제, AWS Identity and Access Management(IAM) 역할 및 리소스 유형을 구성하는 작업이 포함됩니다.

AWS Command Line Interface(AWS CLI) 명령 delete-delivery-channel을 사용하여 AWS Config 전송 채널을 삭제할 경우 구성 레코더가 꺼집니다. 구성 레코더를 다시 켜려고 시도하면 'AWS Config cannot start recording because the delivery channel was not found.' 오류가 반환됩니다.

참고: AWS Config 콘솔을 사용하여 전송 채널을 다시 생성할 수 없습니다.

해결 방법

다음 지침에 따라 AWS Config 전송 채널을 수동으로 다시 생성하고 구성 레코더를 켜십시오.

참고: 삭제한 AWS Config 전송 채널과 연결된 Amazon S3 버킷, S3 주제 및 IAM 역할을 삭제하지 않은 경우 이 단계를 건너뛸 수 있습니다.

Amazon S3 버킷 생성

1.    AWS Config 서비스와 동일한 리전에서 Amazon S3 콘솔을 열고 **버킷 생성(Create bucket)**을 선택합니다.

2.    버킷 이름에 S3 버킷 이름을 입력한 후 다음을 선택합니다.

3.    다음, 다음을 연속적으로 두 번 선택한 후 버킷 생성을 선택합니다.

4.    **S3 버킷(S3 buckets)**에서 3단계에서 생성한 S3 버킷을 선택합니다.

5.    권한을 선택한 다음, 버킷 정책을 선택합니다.

6.    다음 예제 버킷 정책을 복사하여 붙여넣은 다음, **저장(Save)**을 선택합니다.

{
 "Version": "2012-10-17",
 "Statement": [
  {
   "Sid": "AWSConfigBucketPermissionsCheck",
   "Effect": "Allow",
   "Principal": {
    "Service": "config.amazonaws.com"
   },
   "Action": "s3:GetBucketAcl",
   "Resource": "arn:aws:s3:::targetBucketName",
   "Condition": {
    "StringEquals": {
     "AWS:SourceAccount": "sourceAccountID"
    }
   }
  },
  {
   "Sid": "AWSConfigBucketExistenceCheck",
   "Effect": "Allow",
   "Principal": {
    "Service": "config.amazonaws.com"
   },
   "Action": "s3:ListBucket",
   "Resource": "arn:aws:s3:::targetBucketName",
   "Condition": {
    "StringEquals": {
     "AWS:SourceAccount": "sourceAccountID"
    }
   }
  },
  {
   "Sid": "AWSConfigBucketDelivery",
   "Effect": "Allow",
   "Principal": {
    "Service": "config.amazonaws.com"
   },
   "Action": "s3:PutObject",
   "Resource": "arn:aws:s3:::targetBucketName/[optional] prefix/AWSLogs/sourceAccountID/Config/*",
   "Condition": {
    "StringEquals": {
     "s3:x-amz-acl": "bucket-owner-full-control",
     "AWS:SourceAccount": "sourceAccountID"
    }
   }
  }
 ]
}

SNS 주제 생성

1.    AWS Config 서비스와 동일한 리전에서 Amazon SNS 콘솔을 열고 [주제]를 선택합니다.

2.    [주제 생성]을 선택합니다.

3.    **이름(Name)**에 SNS 주제 이름을 입력합니다. 그런 다음 **주제 생성(Create topic)**을 선택합니다.

4.    구독 생성을 선택합니다.

5.    **프로토콜(Protocol)**에서 **이메일(Email)**을 선택합니다.

6.    **엔드포인트(Endpoint)**에 이 SNS 주제와 연결할 이메일 주소를 입력한 다음, **구독 생성(Create subscription)**을 선택합니다.

7.    구독 확인 이메일을 확인한 다음, 구독 확인을 선택합니다.

8.    구독이 확인되었습니다! 메시지가 표시됩니다.

참고: SNS 주제를 사용하려면 필요한 권한이 있는지 확인하세요.

IAM 역할 생성

1.    IAM 콘솔을 엽니다.

2.    역할을 선택한 다음, 역할 생성을 선택합니다.

3.    **신뢰할 수 있는 개체의 유형 선택(Select type of trusted entity)**에서 **AWS 서비스(AWS service)**를 선택합니다.

4.    다른 AWS 서비스의 사용 사례에서 Config를 선택합니다.

5.    사용 사례 선택에서 Config - 사용자 지정 가능을 선택한 후 다음: 권한을 선택합니다.

6.    다음: 태그를 선택한 후 다음: 검토를 선택합니다.

7.    역할 이름에 이름을 입력한 다음, 역할 생성을 선택합니다.

8.    7단계에서 생성한 역할을 선택하고 **인라인 정책 추가(Add inline policy)**를 선택한 다음, JSON 탭을 선택합니다.

9.    다음 예제 정책을 복사하여 붙여넣습니다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl"
      ],
      "Resource": [
        "arn:aws:s3:::arn:aws:s3:::targetBucketName/[optional] prefix/AWSLogs/sourceAccountID-WithoutHyphens/*"
      ],
      "Condition": {
        "StringLike": {
          "s3:x-amz-acl": "bucket-owner-full-control"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetBucketAcl"
      ],
      "Resource": "arn:aws:s3:::targetBucketName"
    },
    {
      "Effect": "Allow",
      "Action": "sns:Publish",
      "Resource": "arn:aws:sns:region:account_number:targetTopicName"
    }
  ]
}

KMS 키 생성

AWS Config에서 Amazon S3 버킷으로 전송한 객체에 대해 AWS Key Management Service(AWS KMS) 기반 암호화를 사용하는 것이 모범 사례입니다. AWS Config 서비스와 동일한 리전에 KMS 키를 생성합니다. KMS 키에 필요한 권한이 있는지 확인합니다.

객체를 암호화하지 않도록 선택한 경우 이 단계를 건너뛰고 전송 채널 생성(Create the delivery channel) 섹션으로 이동합니다.

1.    AWS KMS 콘솔을 엽니다.

2.    탐색 창에서 고객 관리형 키를 선택합니다.

3.    [키 생성]을 선택합니다.

4.    **키 유형(Key type)**에서 **대칭(Symmetric)**을 선택하여 대칭 암호화 KMS 키를 생성합니다. 비대칭 KMS 키에 대한 자세한 내용은 비대칭 KMS 키 생성(콘솔)을 참조하세요.

5.    키 사용(Key usage)의 경우암호화 및 암호 해독(Encrypt and decrypt) 옵션이 기본적으로 선택됩니다. 이 옵션을 확인한 후 **다음(Next)**을 선택합니다.

6.    KMS 키의 별칭을 입력합니다. 그런 다음, **다음(Next)**을 선택합니다. 참고: 별칭 이름은 **aws/**로 시작할 수 없습니다.

7.    KMS 키를 관리할 수 있는 IAM 사용자 및 역할을 선택합니다. 그런 다음, **다음(Next)**을 선택합니다.

8.    암호화 작업에 키를 사용할 수 있는 IAM 사용자 및 역할을 선택합니다. 그런 다음 다음을 **선택(choose)**합니다.

9.    **마침(Finish)**을 선택하여 KMS 키를 생성합니다.

10.    탐색 창에서 **고객 관리형 키(Customer managed keys)**를 선택합니다. 그런 다음 **고객 관리형 키(Customer managed keys)**에서 방금 만든 키를 선택합니다.

11.    키 정책(Key Policy) 탭에서 **정책 보기로 전환(Switch to policy view)**을 선택합니다. 그런 다음 **편집(Edit)**을 선택합니다.

12.    AWS Config에 대해사용자 지정 IAM 역할을 사용하는 경우 이 정책 설명을 복사하여 추가 키 정책 설명으로 붙여 넣습니다. 그런 다음 변경 내용 저장을 선택합니다.

{
  "Statement": [
    {
      "Sid": "AWSConfigKMSPolicy",
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey"
      ],
      "Effect": "Allow",
      "Resource": "myKMSKeyARN",
      "Principal": {
        "AWS": [
          "arn:aws:iam:account_id:role/my-config-role-name"
        ]
      }
    }
  ]
}

-또는-

AWS Config에 대해 서비스 연결 역할(SLR)을 사용하는 경우 다음 정책 설명을 사용하여 KMS 키 정책을 업데이트합니다.

{
  "Statement": [
    {
      "Sid": "AWSConfigKMSPolicy",
      "Effect": "Allow",
      "Principal": {
        "Service": "config.amazonaws.com"
      },
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey"
      ],
      "Resource": "myKMSKeyARN",
      "Condition": {
        "StringEquals": {
          "AWS:SourceAccount": "sourceAccountID"
        }
      }
    }
  ]
}

전송 채널 생성

1.    텍스트 편집기를 사용하여 다음 예시 템플릿을 복사하여 붙여넣은 다음 JSON 파일로 저장합니다. deliveryFrequency 값을 사용 사례에 맞게 변경할 수 있습니다. 암호화를 활성화하지 않도록 선택한 경우 JSON 파일에서 s3KmsKeyArn 값을 생략합니다.

중요: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요.

{
    "name": "default",
    "s3BucketName": "targetBucketName",
    "s3KeyPrefix": "Optionalprefix",
    "snsTopicARN": "arn:aws:sns:region:account_ID:targetTopicName",
    "s3KmsKeyArn": "arn:aws:kms:region:account_ID:KmsKey",
    "configSnapshotDeliveryProperties": {
        "deliveryFrequency": "Twelve_Hours"
    }
}

참고: s3KeyPrefix는 S3 버킷 정책에서 PutObject를 기본값이 아닌 특정 접두사로 제한 하는 경우 제공해야 합니다.

2.    다음 AWS CLI 명령을 실행합니다.

$ aws configservice put-delivery-channel --delivery-channel file://deliveryChannel.json

3.    다음 AWS CLI 명령을 실행하여 전송 채널이 생성되었는지 확인합니다.

$ aws configservice describe-delivery-channels

구성 레코더 시작

1.    AWS Config 콘솔을 엽니다.

2.    탐색 창에서 설정을 선택합니다.

3.    기록이 꺼짐에서 켜기를 선택한 다음, 계속을 선택합니다.

-또는-

다음 AWS CLI 명령을 실행합니다.

$ aws configservice start-configuration-recorder --configuration-recorder-name configRecorderName

자세한 내용은 구성 레코더 관리AWS Config 규칙 관리를 참조하세요.


관련 정보

콘솔을 통해 AWS Config 설정

AWS Config 콘솔 오류 메시지를 해결하려면 어떻게 해야 하나요?

AWS 공식
AWS 공식업데이트됨 2년 전