에 대한 Amazon S3 버킷 정책 CloudTrail - AWS CloudTrail

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

에 대한 Amazon S3 버킷 정책 CloudTrail

기본적으로 Amazon S3 버킷 및 객체는 프라이빗입니다. 리소스 소유자(버킷을 생성한 AWS 계정)만 버킷과 버킷에 포함된 객체에 액세스할 수 있습니다. 리소스 소유자는 액세스 정책을 작성하여 다른 리소스 및 사용자에게 액세스 권한을 부여할 수 있습니다.

조직 추적에 대한 로그 파일을 수신하도록 Amazon S3 버킷을 생성하거나 수정하려면 버킷 정책을 변경해야 합니다. 자세한 정보는 다음을 사용하여 조직을 위한 트레일 생성하기 AWS Command Line Interface을 참조하세요.

로그 파일을 S3 버킷으로 전송하려면 필요한 권한이 CloudTrail 있어야 하며 요청자 지불 버킷으로 구성할 수 없습니다.

CloudTrail 정책에 다음 필드를 자동으로 추가합니다.

  • 허용된 SID

  • 버킷 이름

  • 의 서비스 사용자 이름 CloudTrail

  • 버킷 이름, 접두사 (지정한 경우), AWS 계정 ID를 포함하여 로그 파일이 저장되는 폴더의 이름

보안 모범 사례로 aws:SourceArn 조건 키를 Amazon S3 버킷 정책에 추가합니다. IAM 글로벌 조건 키는 특정 트레일 또는 트레일에 대해서만 S3 버킷에 CloudTrail 쓰도록 하는 aws:SourceArn 데 도움이 됩니다. aws:SourceArn의 값은 항상 버킷을 사용하여 로그를 저장하는 추적의 ARN(또는 추적 ARN의 배열)입니다. 기존 추적에 대해 S3 버킷 정책에 aws:SourceArn 조건 키를 추가해야 합니다.

다음 정책은 지원되는 CloudTrail 버킷에 로그 파일을 쓸 수 있도록 허용합니다. AWS 리전[OptionalPrefix]/, 내 계정 ID, 지역트레일이름을 구성에 적합한 값으로 myBucketName바꾸십시오.

S3 버킷 정책

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailAclCheck20150319", "Effect": "Allow", "Principal": {"Service": "cloudtrail.amazonaws.com"}, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::myBucketName", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:trail/trailName" } } }, { "Sid": "AWSCloudTrailWrite20150319", "Effect": "Allow", "Principal": {"Service": "cloudtrail.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myBucketName/[optionalPrefix]/AWSLogs/myAccountID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:trail/trailName" } } } ] }

에 AWS 리전대한 자세한 CloudTrail 지원되는 지역 내용은 을 참조하십시오.

CloudTrail 로그 전송을 위한 기존 버킷 지정

기존 S3 버킷을 로그 파일 전송을 위한 스토리지 위치로 지정한 경우, 버킷에 쓸 수 있도록 허용하는 정책을 CloudTrail 버킷에 연결해야 합니다.

참고

가장 좋은 방법은 CloudTrail 로그용 S3 전용 버킷을 사용하는 것입니다.

Amazon S3 버킷에 필수 CloudTrail 정책을 추가하려면
  1. https://console.aws.amazon.com/s3/ 에서 Amazon S3 콘솔을 엽니다.

  2. 로그 파일을 CloudTrail 전송할 버킷을 선택한 다음 Permissions를 선택합니다.

  3. 편집을 선택합니다.

  4. S3 bucket policy를 [Bucket Policy Editor] 창으로 복사합니다. 기울임꼴로 표시된 자리 표시자를 버킷 이름, 접두사, 계정 번호로 바꿉니다. 추적을 생성했을 때 접두사를 지정한 경우 여기에 포함합니다. 접두사는 버킷 안에 폴더 같은 조직을 생성한 S3 객체 키에 선택적으로 추가할 수 있습니다.

    참고

    기존 버킷에 이미 하나 이상의 정책이 첨부되어 있는 경우 해당 정책 또는 정책에 CloudTrail 액세스할 수 있는 설명을 추가하십시오. 버킷에 액세스하는 사용자에게 적절한지 발생한 권한 집합을 평가합니다.

다른 계정의 로그 파일 수신

여러 AWS 계정의 로그 파일을 단일 S3 버킷으로 CloudTrail 전송하도록 구성할 수 있습니다. 자세한 정보는 여러 계정에서 CloudTrail 로그 파일 받기을 참조하세요.

조직 추적에 대한 로그 파일을 저장하는 데 사용할 Amazon S3 버킷 생성 또는 업데이트

조직 추적에 대한 로그 파일을 수신할 Amazon S3 버킷을 지정해야 합니다. 이 버킷에는 조직의 로그 파일을 CloudTrail 버킷에 넣을 수 있는 정책이 있어야 합니다.

다음은 조직의 관리 계정이 소유하는 이름이 지정된 myOrganizationBucketAmazon S3 버킷에 대한 예제 정책입니다. 지역 myOrganizationBucket, 관리 계정 ID, 트레일 이름O-조직 ID를 조직의 값으로 바꾸십시오.

이 버킷 정책은 다음 세 가지 문을 포함합니다.

  • 첫 번째 명령문을 사용하면 Amazon S3 버킷에서 Amazon S3 GetBucketAcl 작업을 CloudTrail 호출할 수 있습니다.

  • 두 번째 문은 추적이 조직 추적에서 해당 계정의 추적으로 변경된 경우에 해당 계정에 대한 로깅을 허용합니다.

  • 세 번째 문은 조직 추적에 대한 로깅을 허용합니다.

예제 정책에는 Amazon S3 버킷 정책을 위한 aws:SourceArn 조건 키가 포함되어 있습니다. IAM 글로벌 조건 키는 특정 트레일 또는 트레일에 대해서만 S3 버킷에 CloudTrail 쓰도록 하는 aws:SourceArn 데 도움이 됩니다. 조직 추적에서 aws:SourceArn의 값은 관리 계정이 소유하고 관리 계정 ID를 사용하는 추적 ARN이어야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailAclCheck20150319", "Effect": "Allow", "Principal": { "Service": [ "cloudtrail.amazonaws.com" ] }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::myOrganizationBucket", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:managementAccountID:trail/trailName" } } }, { "Sid": "AWSCloudTrailWrite20150319", "Effect": "Allow", "Principal": { "Service": [ "cloudtrail.amazonaws.com" ] }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myOrganizationBucket/AWSLogs/managementAccountID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceArn": "arn:aws:cloudtrail:region:managementAccountID:trail/trailName" } } }, { "Sid": "AWSCloudTrailOrganizationWrite20150319", "Effect": "Allow", "Principal": { "Service": [ "cloudtrail.amazonaws.com" ] }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myOrganizationBucket/AWSLogs/o-organizationID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceArn": "arn:aws:cloudtrail:region:managementAccountID:trail/trailName" } } } ] }

이 정책 예제에서는 멤버 계정의 사용자가 조직에 대해 생성된 로그 파일에 액세스하는 것을 허용하지 않습니다. 기본적으로 관리 계정만 조직 로그 파일에 액세스할 수 있습니다. 멤버 계정의 IAM 사용자에게 Amazon S3 버킷에 대한 읽기 액세스를 허용하는 방법에 대한 자세한 내용은 AWS 계정 간 CloudTrail 로그 파일 공유 단원을 참조하세요.

Amazon S3 버킷 정책 문제 해결

다음 단원에서는 S3 버킷 정책 문제를 해결하는 방법을 설명합니다.

일반적인 Amazon S3 정책 구성 오류

트레일 생성 또는 업데이트의 일환으로 새 버킷을 생성하면 필요한 권한을 버킷에 CloudTrail 연결합니다. 버킷 정책은 모든 지역에 대한 로그를 CloudTrail 전달할 수 있는 서비스 사용자 이름을 사용합니다. "cloudtrail.amazonaws.com"

지역에 대한 로그를 전달하지 않는 경우 CloudTrail 각 지역의 CloudTrail 계정 ID를 지정하는 이전 정책이 버킷에 있을 수 있습니다. 이 정책은 지정된 지역에 대한 로그만 전송할 수 있는 CloudTrail 권한을 부여합니다.

가장 좋은 방법은 CloudTrail 서비스 주체의 권한을 사용하도록 정책을 업데이트하는 것입니다. 이 작업을 수행하려면 계정 ID ARN을 서비스 보안 주체 이름 "cloudtrail.amazonaws.com"으로 변경해야 합니다. 이렇게 하면 현재 지역과 새 지역의 로그를 전달할 수 있는 CloudTrail 권한이 부여됩니다. 보안 모범 사례로 aws:SourceArn 또는 aws:SourceAccount 조건 키를 Amazon S3 버킷 정책에 추가합니다. 이렇게 하면 S3 버킷에 대한 무단 계정 액세스를 방지하는 데 도움이 됩니다. 기존 추적이 있는 경우 하나 이상의 조건 키를 추가해야 합니다. 다음 예시는 권장되는 정책 구성을 보여 줍니다. [OptionalPrefix]/, 내 계정 ID, 지역트레일이름을 구성에 적합한 값으로 myBucketName바꾸십시오.

예 서비스 보안 주체 이름이 포함된 버킷 정책의 예
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailAclCheck20150319", "Effect": "Allow", "Principal": {"Service": "cloudtrail.amazonaws.com"}, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::myBucketName", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:trail/trailName" } } }, { "Sid": "AWSCloudTrailWrite20150319", "Effect": "Allow", "Principal": {"Service": "cloudtrail.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myBucketName/[optionalPrefix]/AWSLogs/myAccountID/*", "Condition": {"StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:trail/trailName" } } } ] }

기존 버킷의 접두사 변경

추적에서 로그를 수신하는 S3 버킷에 대한 로그 파일 접두사를 추가, 수정 또는 제거할 경우 There is a problem with the bucket policy라는 오류가 표시될 수 있습니다. 잘못된 접두사를 가진 버킷 정책을 사용할 경우 추적이 버킷으로 로그를 전송하지 못할 수 있습니다. 이 문제를 해결하려면 Amazon S3 콘솔을 사용하여 버킷 정책의 접두사를 업데이트한 다음 CloudTrail 콘솔을 사용하여 트레일의 버킷에 동일한 접두사를 지정합니다.

Amazon S3 버킷의 로그 파일 접두사를 업데이트하려면
  1. https://console.aws.amazon.com/s3/ 에서 Amazon S3 콘솔을 엽니다.

  2. 접두사를 수정할 버킷을 선택한 다음 권한(Permissions)을 선택합니다.

  3. 편집을 선택합니다.

  4. 버킷 정책의 s3:PutObject 작업에서 Resource 항목을 편집하여 필요에 따라 로그 파일 prefix/를 추가, 수정 또는 제거합니다.

    "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myBucketName/prefix/AWSLogs/myAccountID/*",
  5. 저장(Save)을 선택합니다.

  6. https://console.aws.amazon.com/cloudtrail/ 에서 CloudTrail 콘솔을 엽니다.

  7. 트레일을 선택하고 스토리지 위치(Storage location)에서 연필 아이콘을 클릭하여 버킷에 대한 설정을 편집합니다.

  8. S3 버킷(S3 bucket)에서 변경하는 접두사를 포함한 버킷을 선택합니다.

  9. 로그 파일 접두사(Log file prefix)에서 버킷 정책에 입력한 접두사와 일치하도록 접두사를 업데이트합니다.

  10. 저장을 선택합니다.

추가적인 리소스

S3 버킷 및 정책에 대한 자세한 내용은 Amazon Simple Storage Service 사용 설명서를 참조하세요.