Amazon:拒绝访问您账户之外的 Amazon S3 资源,Amazon Web Services Data Exchange 除外。 - Amazon Identity and Access Management
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon:拒绝访问您账户之外的 Amazon S3 资源,Amazon Web Services Data Exchange 除外。

以下示例说明如何创建基于身份的策略以拒绝访问 Amazon 中不属于您的账户的所有资源,Amazon Web Services Data Exchange 正常操作所需的资源除外。要使用此策略,请将示例策略中的斜体占位符文本替换为您自己的信息。然后,按照创建策略编辑策略中的说明操作。

您可以使用条件键 Amazon Web Services Data Exchange 和 aws:ResourceOrgPaths 来创建类似的策略,限制对企业或企业部门内部资源的访问,同时包括 aws:ResourceOrgID 所拥有的资源。

如果您在您的环境中使用 Amazon Web Services Data Exchange,该服务会创建资源并与之交互,例如服务账户拥有的 Amazon S3 存储桶。例如,Amazon Web Services Data Exchange 代表 IAM 主体(用户或角色)向 Amazon Web Services Data Exchange 服务拥有的 Amazon S3 存储桶发送调用 Amazon Web Services Data Exchange API 的请求。在这种情况下,在策略中使用 aws:ResourceAccountaws:ResourceOrgPathsaws:ResourceOrgID(不包括 Amazon Web Services Data Exchange 所拥有的资源)会拒绝对服务账户拥有的存储桶的访问。

  • 语句 DenyAllAwsResourcesOutsideAccountExceptS3 使用带有 Deny 效果的 NotAction 元素,它显式拒绝访问未在声明中列出和不属于已列出账户的所有操作。NotAction 元素表示此语句的例外情况。这些操作是此语句的例外情况,因为如果这些操作是在 Amazon Web Services Data Exchange 创建的资源上执行的,则策略会拒绝这些操作。

  • 语句 DenyAllS3ResoucesOutsideAccountExceptDataExchange 使用 ResourceAccountCalledVia 条件的组合,拒绝访问前一语句中排除的三个 Amazon SNS 操作。如果资源不属于已列出的账户,并且,如果调用服务的不是 Amazon Web Services 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" ] } } } ] }