감사 계정의 Amazon S3 버킷 정책 - AWS Control Tower

감사 계정의 Amazon S3 버킷 정책

AWS Control Tower에서 AWS 서비스는 요청이 조직 또는 조직 단위(OU)에서 시작된 경우에만 리소스에 액세스할 수 있습니다. 모든 쓰기 권한에 대해 aws:SourceOrgID 조건이 충족되어야 합니다.

aws:SourceOrgID 조건 키를 사용하고 Amazon S3 버킷 정책의 조건 요소에서 값을 조직 ID로 설정할 수 있습니다. 이 조건은 CloudTrail만 조직 내 계정을 대신하여 S3 버킷에 로그를 쓸 수 있도록 보장하며, 조직 외부의 CloudTrail 로그가 AWS Control Tower S3 버킷에 기록되지 않도록 방지합니다.

이 정책은 기존 워크로드의 기능에 영향을 주지 않습니다. 정책은 다음 예제에 나와 있습니다.

S3AuditBucketPolicy: Type: AWS::S3::BucketPolicy Properties: Bucket: !Ref S3AuditBucket PolicyDocument: Version: 2012-10-17 Statement: - Sid: AllowSSLRequestsOnly Effect: Deny Principal: '*' Action: s3:* Resource: - !Sub "arn:${AWS::Partition}:s3:::${S3AuditBucket}" - !Sub "arn:${AWS::Partition}:s3:::${S3AuditBucket}/*" Condition: Bool: aws:SecureTransport: false - Sid: AWSBucketPermissionsCheck Effect: Allow Principal: Service: - cloudtrail.amazonaws.com - config.amazonaws.com Action: s3:GetBucketAcl Resource: - !Sub "arn:${AWS::Partition}:s3:::${S3AuditBucket}" - Sid: AWSConfigBucketExistenceCheck Effect: Allow Principal: Service: - cloudtrail.amazonaws.com - config.amazonaws.com Action: s3:ListBucket Resource: - !Sub "arn:${AWS::Partition}:s3:::${S3AuditBucket}" - Sid: AWSBucketDeliveryForConfig Effect: Allow Principal: Service: - config.amazonaws.com Action: s3:PutObject Resource: - Fn::Join: - "" - - !Sub "arn:${AWS::Partition}:s3:::" - !Ref "S3AuditBucket" - !Sub "/${AWSLogsS3KeyPrefix}/AWSLogs/*/*" Condition: StringEquals: aws:SourceOrgID: !Ref OrganizationId - Sid: AWSBucketDeliveryForOrganizationTrail Effect: Allow Principal: Service: - cloudtrail.amazonaws.com Action: s3:PutObject Resource: !If [IsAccountLevelBucketPermissionRequiredForCloudTrail, [!Sub "arn:${AWS::Partition}:s3:::${S3AuditBucket}/${AWSLogsS3KeyPrefix}/AWSLogs/${Namespace}/*", !Sub "arn:${AWS::Partition}:s3:::${S3AuditBucket}/${AWSLogsS3KeyPrefix}/AWSLogs/${OrganizationId}/*"], !Sub "arn:${AWS::Partition}:s3:::${S3AuditBucket}/${AWSLogsS3KeyPrefix}/AWSLogs/*/*"] Condition: StringEquals: aws:SourceOrgID: !Ref OrganizationId

이 조건 키에 대한 자세한 내용은 IAM 설명서 및 'Use scalable controls for AWS services accessing your resources'라는 제목의 IAM 블로그 게시물을 참조하세요.