

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

# 設定使用目錄儲存貯體的存取點的 IAM 政策
<a name="access-points-directory-buckets-policies"></a>

存取點支援 AWS Identity and Access Management (IAM) 資源政策，可讓您依資源、使用者或其他條件控制存取點的使用。若要讓應用程式或使用者透過存取點存取物件，存取點和基礎儲存貯體政策都必須允許該請求。

**重要**  
將存取點新增到目錄儲存貯體，並不會變更直接透過儲存貯體名稱存取儲存貯體時的儲存貯體行為。針對儲存貯體的所有現有操作將繼續像以前一樣運作。您納入存取點政策或存取點範圍中的限制，只會套用至透過該存取點發出的請求。

使用 IAM 資源政策時，請務必先解決 的安全警告、錯誤、一般警告和建議， AWS Identity and Access Management Access Analyzer 再儲存政策。IAM Access Analyzer 會比對 IAM [政策文法](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html)和[最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)來執行政策檢查，以驗證您的政策。這些檢查會產生問題清單並提供建議，協助您撰寫具有功能性且符合安全最佳實務的政策。

若要進一步了解如何使用 IAM Access Analyzer 驗證政策，請參閱《IAM 使用者指南》**中的 [IAM Access Analyzer 政策驗證](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)。若要檢視 IAM Access Analyzer 傳回的警告、錯誤和建議清單，請參閱 [IAM Access Analyzer 政策檢查參考](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html)。

## 目錄儲存貯體政策的存取點範例
<a name="access-points-directory-buckets-policy-examples"></a>

下列存取點政策示範如何控制對目錄儲存貯體的請求。存取點政策須有儲存貯體 ARN 或存取點 ARN。政策不支援存取點別名。以下是存取點 ARN 的範例：

```
  arn:aws:s3express:region:account-id:accesspoint/myaccesspoint--zoneID--xa-s3
```

您可以在存取點的詳細資訊中檢視存取點 ARN。如需詳細資訊，請參閱[檢視目錄儲存貯體的存取點詳細資訊](access-points-directory-buckets-details.md)。

**注意**  
存取點政策中授予的權限只有在基礎儲存貯體也允許相同的存取時才有效。您可以透過兩種方式完成此操作：  
**(建議)** 如[將存取控制委派給存取點](#access-points-directory-buckets-delegating-control)中所述，將儲存貯體的存取控制委派給存取點。
將存取點政策中包含的相同權限新增至基礎儲存貯體的政策。

**Example 1 – 將存取點限制為 VPC 網路原來源的服務控制政策**  
下列服務控制政策需要使用虛擬私有雲端 (VPC) 網路來源建立所有新的存取點。有了此政策，組織中的使用者就無法建立可從網際網路存取的任何存取點。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
    {
        "Effect": "Deny",
        "Action": "s3express:CreateAccessPoint",
        "Resource": "*",
        "Condition": {
            "StringNotEquals": {
                "s3express:AccessPointNetworkOrigin": "VPC"
            }
        }
    }
  ]
}
```

**Example 2 – 存取點政策，限制儲存貯體存取具有 VPC 網路來源的存取點**  
下列存取點政策將儲存貯體 *amzn-s3-demo-bucket--zoneID--x-s3* 的所有存取權限制在具有 VPC 網路來源的存取點。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenyCreateSessionFromNonVPC",
            "Principal": "*",
            "Action": "s3express:CreateSession",
            "Effect": "Deny",
            "Resource": "arn:aws:s3express:us-east-1:111122223333:bucket/amzn-s3-demo-bucket--usw2-az1--x-s3"
        }
    ]
}
```

## 條件索引鍵
<a name="access-points-directory-buckets-condition-keys"></a>

目錄儲存貯體的存取點具有您可以在 IAM 政策中使用的條件索引鍵，可用來控制對資源的存取。下列條件金鑰僅代表 IAM 政策的一部分。如需完整政策範例，請參閱 [目錄儲存貯體政策的存取點範例](#access-points-directory-buckets-policy-examples)、[將存取控制委派給存取點](#access-points-directory-buckets-delegating-control) 和 [授予跨帳戶存取點的許可](#access-points-directory-buckets-cross-account)。

**`s3express:DataAccessPointArn`**  
此範例示範如何依照存取點的 Amazon Resource Name (ARN) 篩選存取權，並符合區域 *region* 中 AWS 帳戶 *111122223333* 的所有存取點：  

```
"Condition" : {
    "StringLike": {
        "s3express:DataAccessPointArn": "arn:aws:s3express:region:111122223333:accesspoint/*"
    }
}
```

**`s3express:DataAccessPointAccount`**  
此範例顯示一個字串運算子，您可以使用它來比對存取點擁有者的帳戶 ID。下列範例會比對 AWS 帳戶 *`111122223333`* 擁有的所有存取點。  

```
"Condition" : {
    "StringEquals": {
        "s3express:DataAccessPointAccount": "111122223333"
    }
}
```

**`s3express:AccessPointNetworkOrigin`**  
此範例顯示一個字串運算子，您可以使用它來比對網路來源，`Internet` 或 `VPC`。下列範例僅會比對存取點與 VPC 來源。  

```
"Condition" : {
    "StringEquals": {
        "s3express:AccessPointNetworkOrigin": "VPC"
    }
}
```

**`s3express:Permissions`**  
您可以使用 `s3express:Permissions` 限制在存取點範圍內存取的特定 API 操作。以下是支援的 API 操作：  
+ `PutObject`
+ `GetObject`
+ `DeleteObject`
+ `ListBucket` (`ListObjectsV2` 所需)
+ `GetObjectAttributes`
+ `AbortMultipartUpload`
+ `ListBucketMultipartUploads`
+ `ListMultipartUploadParts`
使用多值條件索引鍵時，建議您搭配 `Allow` 陳述式使用 `ForAllValues`，並搭配 `Deny` 陳述式使用 `ForAnyValue`。如需詳細資訊，請參閱《IAM 使用者指南》中的[多值內容鍵](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-single-vs-multi-valued-context-keys.html#reference_policies_condition-multi-valued-context-keys)。

如需搭配 Amazon S3 使用條件索引鍵的詳細資訊，請參閱服務授權參考**中的 [Amazon S3 的動作、資源和條件索引鍵](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html)。

如需有關依照 S3 資源類型執行 S3 API 操作的必要權限的詳細資訊，請參閱 [Amazon S3 API 操作所需的許可](using-with-s3-policy-actions.md)。

## 將存取控制委派給存取點
<a name="access-points-directory-buckets-delegating-control"></a>

您可以將儲存貯體政策的存取控制，委派給存取點政策。下列範例儲存貯體政策允許完整存取儲存貯體擁有者帳戶所擁有的所有存取點。套用政策後，所有對此儲存貯體的存取都由存取點政策控制。我們建議您針對不需要直接存取儲存貯體的所有使用案例，以此方式設定儲存貯體。

**Example 將存取控制委派給存取點的儲存貯體政策**  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement" : [
    {
        "Effect": "Allow",
        "Principal" : { "AWS": "*" },
        "Action" : "*",
        "Resource" : [ "Bucket ARN",
        "Condition": {
            "StringEquals" : { "s3express:DataAccessPointAccount" : "Bucket owner's account ID" }
        }
    }]
}
```

## 授予跨帳戶存取點的許可
<a name="access-points-directory-buckets-cross-account"></a>

若要建立另一個帳戶所擁有之儲存貯體的存取點，您必須先指定儲存貯體名稱和帳戶擁有者 ID 來建立存取點。然後，儲存貯體擁有者必須更新儲存貯體政策，以授權來自存取點的請求。建立存取點類似於建立 DNS CNAME，其中存取點不會提供儲存貯體內容的存取權。所有儲存貯體存取權都由儲存貯體政策控制。下列範例儲存貯體政策允許儲存貯體上來自受信任 AWS 帳戶所擁有之存取點的 `GET` 和 `LIST` 請求。

將 *Bucket ARN* 取代為儲存貯體的 ARN。

**Example 將許可委派給另一個 的儲存貯體政策 AWS 帳戶**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement" : [
    {
        "Sid": "AllowCreateSessionForDirectoryBucket",
        "Effect": "Allow",
        "Principal" : { "AWS": "*" },
        "Action" : "s3express:CreateSession",
        "Resource" : [ "arn:aws:s3express:us-west-2:111122223333:bucket/amzn-s3-demo-bucket--usw2-az1--x-s3" ],
        "Condition": {
            "ForAllValues:StringEquals": {
                "s3express:Permissions": [
                    "GetObject",
                    "ListBucket"
                ]
            }
        }
    }]
}
```