AWS:拒絕存取您帳戶外部的 Amazon S3 資源,除非 AWS Data Exchange - AWS Identity and Access Management

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS:拒絕存取您帳戶外部的 Amazon S3 資源,除非 AWS Data Exchange

此範例顯示如何建立以身分識別為基礎的原則,拒絕存取不屬於您帳戶 AWS 的所有資源,但正常作業所 AWS Data Exchange 需的資源除外。若要使用此政策,請將範例政策中的斜體預留位置文字取代為您自己的資訊。然後,遵循建立政策編輯政策中的指示進行操作。

您可以建立類似的策略來限制對組織或組織單位內資源的存取,同時使用條件鍵aws:ResourceOrgPaths和來計算 AWS Data Exchange 擁有的資源aws:ResourceOrgID

如果您 AWS Data Exchange 在環境中使用,服務會建立服務帳戶所擁有的 Amazon S3 儲存貯體等資源並與之互動。例如,代表叫用 AWS Data Exchange API 的 IAM 主體 (使用者或角色), AWS Data Exchange 將請求傳送到 AWS Data Exchange 服務擁有的 Amazon S3 儲存貯體。在這種情況下,在政策aws:ResourceOrgID中使用aws:ResourceAccountaws:ResourceOrgPaths、或而不計算 AWS Data Exchange 擁有資源的情況下,會拒絕存取服務帳戶所擁有的值區。

  • 陳述式 DenyAllAwsResourcesOutsideAccountExceptS3 會搭配使用 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" ] } } } ] }