AWS: AWS Data Exchange를 제외한 계정 외부의 Amazon S3 리소스에 대한 액세스 거부 - AWS Identity and Access Management

AWS: AWS Data Exchange를 제외한 계정 외부의 Amazon S3 리소스에 대한 액세스 거부

이 예제는 AWS Data Exchange이(가) 일반 작업에 필요한 리소스를 제외하고 계정에 속하지 않은 AWS의 모든 리소스에 대한 액세스를 거부하는 ID 기반 정책을 생성하는 방법을 보여줍니다. 이 정책을 사용하려면 정책 예제의 기울임꼴 자리 표시자 텍스트를 본인의 정보로 대체합니다. 그런 다음 정책 생성 또는 정책 편집의 지침을 따릅니다.

조건 키 aws:ResourceOrgPathsaws:ResourceOrgID을(를) 사용하여 AWS Data Exchange 소유 리소스를 고려하면서 조직 또는 조직 단위 내 리소스에 대한 액세스를 제한하는 유사한 정책을 만들 수 있습니다.

환경에서 AWS Data Exchange를 사용하는 경우 서비스는 서비스 계정이 소유한 Amazon S3 버킷과 같은 리소스를 생성하고 상호 작용합니다. 예를 들어, AWS Data Exchange는 AWS Data Exchange API를 호출하는 IAM 보안 주체(사용자 또는 역할)를 대신하여 AWS Data Exchange 서비스가 소유한 Amazon S3 버킷에 요청을 전송합니다. 이 경우 AWS Data Exchange 소유 리소스를 고려하지 않고 정책에서 aws:ResourceAccount, aws:ResourceOrgPaths 또는aws:ResourceOrgID을(를) 사용하면 서비스 계정이 소유한 버킷에 대한 액세스가 거부됩니다.

  • DenyAllAwsResourcesOutsideAccountExceptS3 문은 문에 나열되지 않고 나열된 계정에도 속하지 않는 모든 작업에 대한 액세스를 명시적으로 거부하는 Deny 효과와 함께 NotAction 요소를 사용합니다. NotAction 요소는 이 문의 예외를 나타냅니다. 이러한 작업은 이 문의 예외입니다. AWS Data Exchange에서 생성한 리소스에서 작업을 수행하는 경우 정책이 이를 거부하기 때문입니다.

  • DenyAllS3ResoucesOutsideAccountExceptDataExchange 문은 ResourceAccountCalledVia 조건을 조합해서 사용하여 이전 문에서 제외된 세 가지 Amazon S3 작업에 대한 액세스를 거부합니다. 이 문은 리소스가 나열된 계정에 속하지 않는 경우 그리고 호출 서비스가 AWS Data Exchange이 아닌 경우 작업을 거부합니다. 이 문은 리소스가 나열된 계정에 속하거나 나열된 서비스 주체인 dataexchange.amazonaws.com이 작업을 수행하는 경우 작업을 거부하지 않습니다.

중요

이 정책은 어떤 작업도 허용하지 않습니다. 이는 나열된 계정에 속하지 않는 문에 나열된 모든 리소스에 대한 액세스를 명시적으로 거부하는 Deny 효과를 사용합니다. 이 정책을 특정 리소스에 대한 액세스를 허용하는 다른 정책과 함께 사용합니다.

다음 예제는 필요한 Amazon S3 버킷에 대한 액세스를 허용하도록 정책을 구성하는 방법을 보여줍니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAllAwsReourcesOutsideAccountExceptAmazonS3", "Effect": "Deny", "NotAction": [ "s3:GetObject", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceAccount": [ "111122223333" ] } } }, { "Sid": "DenyAllS3ResourcesOutsideAccountExceptDataExchange", "Effect": "Deny", "Action": [ "s3:GetObject", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceAccount": [ "111122223333" ] }, "ForAllValues:StringNotEquals": { "aws:CalledVia": [ "dataexchange.amazonaws.com" ] } } } ] }