AWS Config 전송 채널을 위한 Amazon S3 버킷에 대한 권한 - AWS Config

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS Config 전송 채널을 위한 Amazon S3 버킷에 대한 권한

중요

이 페이지에서는 AWS Config 전송 채널을 위한 Amazon S3 버킷 설정에 대해 설명합니다. 이 페이지는 AWS Config 구성 레코더가 기록할 수 있는 AWS::S3::Bucket 리소스 유형에 관한 것이 아닙니다. 전송 채널에 대한 자세한 내용은 AWS Config 전송 채널 관리를 참조하십시오.

기본적으로 모든 Amazon S3 버킷 및 객체는 프라이빗입니다. 리소스 소유자, 즉 버킷을 생성한 AWS 계정만 해당 버킷에 액세스할 수 있습니다. 그러나 리소스 소유자가 원한다면 다른 리소스 및 사용자에게 액세스 권한을 부여할 수 있습니다. 이렇게 하는 방법 중 하나는 액세스 정책을 작성하는 것입니다.

Amazon S3 버킷을 자동으로 AWS Config 생성하는 경우 (예: AWS Config 콘솔을 사용하여 전송 채널을 설정하는 경우), 이러한 권한은 Amazon S3 버킷에 자동으로 추가됩니다. 그러나 기존 Amazon S3 버킷을 지정하는 경우에는 해당 S3 버킷에 올바른 권한이 있는지 확인해야 합니다.

참고

객체는 해당 버킷으로부터 권한을 상속하지 않습니다. 예를 들어, 버킷을 만들고 사용자에게 쓰기 액세스 권한을 부여하는 경우 사용자로부터 명시적으로 권한을 부여 받지 않는 한 해당 사용자의 객체에 액세스할 수 없습니다.

IAM 역할을 사용할 때 Amazon S3 버킷에 필요한 권한

계정의 Amazon S3 버킷으로 구성 정보 (기록 파일 및 스냅샷) 를 AWS Config 전송할 때는 설정 시 할당한 IAM 역할을 맡습니다. AWS Config AWS Config 가 다른 계정의 Amazon S3 버킷으로 구성 정보를 전송하는 경우에는 먼저 IAM 역할을 사용하려고 해보지만, 해당 버킷의 액세스 정책에서 WRITE에게 그 IAM 역할에 대한 액세스 권한을 부여하지 않으면 이러한 시도는 실패합니다. 이 경우, 이번에는 서비스 주체 자격으로 정보를 다시 AWS Config 전송합니다 AWS Config . 전송이 성공하려면 액세스 정책에서 config.amazonaws.com 주체 이름에 WRITE 대한 액세스 권한을 부여해야 합니다. AWS Config 그러면 S3 버킷으로 전송하는 객체의 소유자가 됩니다. 아래 6단계에서 언급한 액세스 정책을 다른 계정의 Amazon S3 버킷에 연결하여 AWS Config 에게 Amazon S3 버킷에 대한 액세스 권한을 부여해야 합니다.

Amazon S3 버킷으로 로그를 전송하기 전에는 AWS Config 버킷이 존재하는지 여부와 버킷이 위치한 AWS 지역을 AWS Config 확인합니다. AWS Config Amazon S3 HeadBucketAPI 호출을 시도하여 버킷이 존재하는지 확인하고 버킷 지역을 가져오려고 합니다. 위치 확인이 수행될 때 버킷을 찾을 수 있는 권한이 제공되지 않으면 AWS CloudTrail 로그에 AccessDenied 오류가 표시됩니다. 그러나 버킷 위치 권한을 제공하지 않는 경우에는 Amazon S3 버킷으로의 로그 전송이 성공합니다.

참고

Amazon S3 HeadBucket API에 대한 권한을 허용하려면 아래 6단계에서 언급한 AWSConfigBucketExistenceCheck Sid로 s3:ListBucket 작업을 수행할 수 있는 권한을 제공하세요.

서비스 연결 역할을 사용할 때 Amazon S3 버킷에 필요한 권한

AWS Config 서비스 연결 역할에는 Amazon S3 버킷에 객체를 넣을 권한이 없습니다. 따라서 서비스 연결 역할을 AWS Config 사용하여 설정하는 경우 구성 항목을 서비스 보안 주체로 대신 전송합니다. AWS Config AWS Config Amazon S3 버킷에 대한 액세스 권한을 AWS Config 부여하려면 아래 6단계에서 언급한 액세스 정책을 사용자 계정 또는 다른 계정의 Amazon S3 버킷에 연결해야 합니다.

Amazon S3 버킷에 AWS Config 대한 액세스 권한 부여

자신의 계정 또는 다른 계정의 Amazon S3 버킷에 액세스 정책을 추가하려면 다음 단계를 따릅니다. 액세스 정책을 통해 AWS Config Amazon S3 버킷으로 구성 정보를 전송할 수 있습니다.

  1. S3 버킷이 있는 계정을 AWS Management Console 사용하여 로그인합니다.

  2. https://console.aws.amazon.com/s3/ 에서 Amazon S3 콘솔을 엽니다.

  3. 구성 항목을 전송하는 AWS Config 데 사용할 버킷을 선택한 다음 [Properties] 를 선택합니다.

  4. 권한을 선택합니다.

  5. [Edit Bucket Policy]를 선택합니다.

  6. 다음 정책을 버킷 정책 편집기 창으로 복사합니다.

    중요

    Amazon S3 버킷에 AWS Config 대한 액세스를 허용할 때의 보안 모범 사례로서, 버킷 정책에서 다음 AWS:SourceAccount 조건으로 액세스를 제한하는 것이 좋습니다. 기존 버킷 정책이 이 보안 모범 사례를 따르지 않는 경우 이 보호를 포함하도록 해당 버킷 정책을 편집할 것을 강력히 권장합니다. 이렇게 하면 예상 사용자를 대신해서만 액세스 권한이 AWS Config 부여됩니다.

    { "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" } } } ] }
    참고

    SPN ( AWS Config 서비스 사용자 이름) 대신 IAM 역할에 권한을 부여하는 경우, IAM 역할에 계정 간 버킷에 대한 PutObjectACL 권한이 있는지 확인하여 권한 부족 오류를 방지하세요. S3 버킷에 대한 IAM 역할 정책에서 샘플 IAM 역할 정책을 참조하세요.

  7. 버킷 정책에서 다음 값을 바꿉니다.

    • targetBucketName— 구성 항목을 전송할 Amazon S3 버킷의 이름. AWS Config

    • [선택 사항] prefix - Amazon S3 버킷 안에 폴더 같은 조직을 만들기 위해 객체 키에 선택적으로 추가할 수 있습니다.

    • 소스 계정 ID — 대상 버킷에 구성 항목을 전달하는 AWS Config 데 사용할 계정의 ID입니다.

  8. 저장을 선택한 후 닫기를 선택합니다.

위의 Amazon S3 버킷 정책의 AWS:SourceAccount 조건을 사용하여 특정 계정을 대신하여 작업을 수행할 때 Config 서비스 보안 주체가 Amazon S3 버킷과만 상호 작용하도록 제한할 수 있습니다. 단일 Amazon S3 버킷으로 구성 항목을 전송하기 위해 동일한 조직의 여러 계정을 AWS Config 설정하려는 경우, 다음과 같은 AWS Organizations 조건 키를 사용할 수 있도록 서비스 연결 역할 대신 IAM 역할을 사용하는 것이 좋습니다. AWS:PrincipalOrgID 함께 AWS Config사용할 IAM 역할의 액세스 권한을 관리하는 방법에 대한 자세한 내용은 할당된 IAM 역할에 대한 권한을 참조하십시오. AWS Config액세스 권한 관리에 대한 자세한 내용은 AWS Organizations조직의 액세스 권한 관리를 참조하십시오. AWS

AWS Config 또한 AWS Config 특정 전송 채널을 대신하여 작업을 수행할 때 Config 서비스 보안 주체가 Amazon S3 버킷과만 상호 작용하도록 제한하는 AWS:SourceArn 조건을 지원합니다. AWS Config 서비스 보안 주체를 사용하는 경우 AWS:SourceArn 속성은 항상 전송 채널의 지역이 arn:aws:config:sourceRegion:sourceAccountID:* sourceRegion 어디인지, sourceAccountID 이 속성은 전송 채널을 포함하는 계정의 ID로 설정됩니다. AWS Config 전송 채널에 대한 자세한 내용은 전송 채널 관리를 참조하십시오. 예를 들어, 다음 조건을 추가하여 Config 서비스 보안 주체가 123456789012 계정의 us-east-1 리전 전송 채널을 대신해서만 Amazon S3 버킷과 상호 작용하도록 제한할 수 있습니다. "ArnLike": {"AWS:SourceArn": "arn:aws:config:us-east-1:123456789012:*"}.