AWS: AWS Data Exchange を除くアカウント外の Amazon S3 リソースへのアクセスを拒否する
この例では、AWS Data Exchange が通常のオペレーションに必要とするリソースを除いた、アカウントに属さない AWS のすべてのリソースへのアクセスを拒否する ID ベースのポリシーを作成する方法を示します。このポリシーを使用するには、サンプルポリシーのイタリック体のプレースホルダーテキスト
を独自の情報に置き換えます。次に、「ポリシーの作成またはポリシーの編集」の手順に従います。
条件キー aws:ResourceOrgPaths
および aws:ResourceOrgID
を使用して AWS Data Exchange 所有のリソースを考慮しながら、組織または組織単位内のリソースへのアクセスを制限するために、類似ポリシーを作成できます。
ご自分の環境で AWS Data Exchange を使用する場合、サービスはサービスアカウントが所有する Amazon S3 バケットなどのリソースを作成し、操作します。たとえば、AWS Data Exchange は、IAM プリンシパル (ユーザーまたはロール) に代わって AWS Data Exchange API を呼び出す AWS Data Exchange サービスが所有する Amazon S3 バケットに要求を送信します。その場合は、aws:ResourceAccount
、aws:ResourceOrgPaths
、aws:ResourceOrgID
ポリシーを使用して、AWS Data Exchange が所有するリソースを考慮せず、サービスアカウントが所有するバケットへのアクセスを拒否します。
-
ステートメント
DenyAllAwsResourcesOutsideAccountExceptS3
では、ステートメントにリスト表示されておらず、またリスト表示されたアカウントに属していないすべてのアクションへのアクセスを明確に拒否する効果を持つNotAction
要素を使用します。NotAction
要素は、このステートメントの例外を示します。これらのアクションは、ステートメントの例外を示します。これは AWS Data Exchange によって作成されたリソースでアクションが実行されると、ポリシーによってアクションが拒否されるためです。 -
このステートメント
DenyAllS3ResoucesOutsideAccountExceptDataExchange
は、ResourceAccount
およびCalledVia
の条件の組み合わせを使用して、前のステートメントで除外された 3 つの 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" ] } } } ] }