

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

# AWS：拒絕存取您帳戶外部的 Amazon S3 資源，但 AWS Data Exchange
<a name="reference_policies_examples_resource_account_data_exch"></a>

此範例示範如何建立身分型政策，拒絕存取 AWS 中不屬於您帳戶的所有資源，但正常操作 AWS Data Exchange 所需的資源除外。若要使用此政策，請將範例政策中的{{斜體預留位置文字}}取代為您自己的資訊。然後，遵循[建立政策](access_policies_create.md)或[編輯政策](access_policies_manage-edit.md)中的指示進行操作。

您可以建立類似的政策來限制對組織或組織單位內資源的存取，同時使用條件索引鍵 `aws:ResourceOrgPaths`和 來說明 AWS Data Exchange 擁有的資源`aws:ResourceOrgID`。

如果您在 AWS Data Exchange 環境中使用 ，服務會建立資源並與之互動，例如服務帳戶擁有的 Amazon S3 儲存貯體。例如， 代表叫用 API 的 IAM 主體 （使用者或角色），將請求 AWS Data Exchange 傳送至 AWS Data Exchange 服務擁有的 Amazon S3 儲存貯體。 AWS Data Exchange APIs 在這種情況下，在政策`aws:ResourceOrgID`中使用 `aws:ResourceAccount`、 `aws:ResourceOrgPaths`或 ，而不考慮 AWS Data Exchange 擁有的資源， 會拒絕存取服務帳戶擁有的儲存貯體。
+ 陳述式 `DenyAllAwsResourcesOutsideAccountExceptS3` 會搭配使用 `NotAction` 元素與[拒絕](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_effect.html)效果，明確拒絕存取陳述式中未列出的且不屬於所列帳戶的每個動作。`NotAction` 元素表示此陳述式的例外狀況。這些動作是此陳述式的例外狀況，因為如果對 建立的資源執行動作 AWS Data Exchange，政策會拒絕這些動作。
+ `DenyAllS3ResourcesOutsideAccountExceptDataExchange` 陳述式會結合使用 `ResourceAccount` 和 `CalledVia` 條件，拒絕存取先前的陳述式中排除的 Amazon S3 動作。如果資源不屬於列出的帳戶並且如果呼叫服務不是 AWS Data Exchange，陳述式會拒絕執行動作。如果資源屬於列出的帳戶，或者列出的服務主體 `dataexchange.amazonaws.com` 執行操作，則陳述式不會拒絕執行動作。

**重要**  
此政策不允許任何動作。它使用 `Deny` 效果，明確拒絕存取陳述式中列出的不屬於所列帳戶的所有資源。將此政策與允許存取特定資源的其他政策結合使用。

以下範例示範如何設定政策，以允許存取所需的 Amazon S3 儲存貯體。

------
#### [ JSON ]

****  

```
{
  "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"
          ]
        }
      }
    }
  ]
}
```

------