

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

# 搭配使用標籤和一般用途儲存貯體的 S3 存取點
<a name="access-points-tagging"></a>

 AWS 標籤是金鑰值對，可保留資源的中繼資料，在此情況下為 Amazon S3 存取點。您可以在建立存取點或管理現有存取點上的標籤時，標記存取點。如需有關標籤的一般資訊，請參閱 [成本分配或屬性型存取控制 (ABAC) 的標記](tagging.md)。

**注意**  
除了標準 S3 API 請求費率之外，在存取點上使用標籤不會產生額外費用。如需詳細資訊，請參閱 [Simple Storage Service (Amazon S3) 定價](https://aws.amazon.com/s3/pricing/)。

## 搭配使用標籤和存取點的常見方式
<a name="common-ways-to-use-tags-directory-bucket"></a>

屬性型存取控制 (ABAC) 可讓您擴展存取權限，並根據存取點的標籤授予存取點的存取權。如需有關在 Amazon S3 中使用 ABAC 的詳細資訊，請參閱[使用 ABAC 的標籤](https://docs.aws.amazon.com/AmazonS3/latest/userguide/tagging.html#)。

### S3 存取點的 ABAC
<a name="abac-for-access-points"></a>

Amazon S3 Access Points 支援使用標籤的屬性型存取控制 (ABAC)。在您的 AWS 組織、IAM 和存取點政策中使用標籤型條件金鑰。對於企業，Amazon S3 中的 ABAC 支援跨多個 AWS 帳戶進行授權。

在您的 IAM 政策中，您可以透過使用下列[全域條件索引鍵](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys)，根據存取點的標籤來控制對存取點的存取：
+ `aws:ResourceTag/key-name`
**重要**  
`aws:ResourceTag` 條件索引鍵只能用於透過一般用途儲存貯體的存取點 ARN 執行的 S3 動作，並僅涵蓋基礎存取點標籤。
  + 使用此鍵來將您在政策中所指定的標籤鍵值對與連接到資源的鍵值對進行比較。例如，您可以要求只在資源擁有連接標籤鍵 `Dept` 和值 `Marketing` 時才允許資源的存取。如需詳細資訊，請參閱[控制對 AWS 資源的存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-resources)。
+ `aws:RequestTag/key-name`
  + 使用此鍵來將請求中傳遞的標籤鍵/值對與您在政策中所指定的標籤對進行比較。例如，您可以檢查請求是否包含標籤鍵 `Dept` 並且其具有值 `Accounting`。如需詳細資訊，請參閱在[AWS 請求期間控制存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-requests)。您可以使用此條件索引鍵，限制在 `TagResource` 和 `CreateAccessPoint` API 操作期間可以傳遞哪些標籤鍵值對。
+ `aws:TagKeys`
  + 使用此鍵來將請求中的標籤鍵與您在政策中所指定的鍵進行比較。當使用政策來控制使用標籤的存取時，建議您使用 `aws:TagKeys` 條件鍵來定義允許的標籤鍵。如需範例政策和詳細資訊，請參閱[根據標籤金鑰控制存取權限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-tag-keys)。您可以建立具有標籤的存取點。若要在 `CreateAccessPoint` API 操作期間允許標記，您必須建立同時包含 `s3:TagResource` 和 `s3:CreateAccessPoint` 動作的政策。然後，您可以使用 `aws:TagKeys` 條件索引鍵，以強制在 `CreateAccessPoint` 請求中使用特定的標籤。
+ `s3:AccessPointTag/tag-key`
  + 使用此條件索引鍵，透過使用標籤的存取點來授予特定資料的許可權。在 IAM 政策中使用 `aws:ResourceTag/tag-key` 時，存取點和存取點指向的儲存貯體，都需要具有相同標籤，因為在與授權期間兩者都會考量到。如果您只想透過存取點標籤來控制對資料的存取，則可以使用 `s3:AccessPointTag/tag-key` 條件索引鍵。

### 存取點的 ABAC 政策範例
<a name="example-access-points-abac-policies"></a>

請參閱下列用於 Amazon S3 Access Points 的 ABAC 政策範例。

#### 1.1 - IAM 政策，可建立或修改具有特定標籤的儲存貯體
<a name="example-access-points-user-policy-request-tag"></a>

在此 IAM 政策中，具有此政策的使用者或角色只有在存取點於存取點建立請求中，以標籤索引鍵 `project` 和標籤值 `Trinity` 來標記存取點時，才能建立存取點。只要 `TagResource` 請求包含標籤鍵值對 `project:Trinity`，他們也可以在現有存取點上新增或修改標籤。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "CreateAccessPointWithTags",
      "Effect": "Allow",
      "Action": [
        "s3:CreateAccessPoint",
        "s3:TagResource"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/project": [
            "{{Trinity}}"
          ]
        }
      }
    }
  ]
}
```

#### 1.2 - 存取點政策，可使用標籤限制存取點上的操作
<a name="example-access-points-user-policy-resource-tag"></a>

在此存取點政策中，只要在存取點 `project` 標籤的值符合主體的 `project` 標籤值時，IAM 主體 (使用者和角色) 就能在存取點上使用 `GetObject` 動作來執行操作。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowObjectOperations",
      "Effect": "Allow",
      "Principal": {
        "AWS": "{{111122223333}}"
      },
      "Action": "s3:GetObject",
      "Resource": "arn:aws::s3:{{region}}:{{111122223333}}:accesspoint/{{{{my-access-point}}}}",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/project": "${aws:PrincipalTag/project}"
        }
      }
    }
  ]
}
```

#### 1.3 - IAM 政策，可修改維護標記治理之現有資源上的標籤
<a name="example-access-points-user-policy-tag-keys"></a>

在此 IAM 政策中，只有在存取點的 `project` 標籤值符合主體的 `project` 標籤值時，IAM 主體 (使用者或角色) 才能修改存取點上的標籤。這些存取點只允許 `aws:TagKeys` 條件索引鍵中指定的四個標籤 `project`、`environment`、`owner` 和 `cost-center`。這有助於強制執行標籤治理、防止未經授權的標籤修改，並且使所有存取點的標記結構描述保持一致。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "EnforceTaggingRulesOnModification",
      "Effect": "Allow",
      "Action": [
        "s3:TagResource"
      ],
      "Resource": "arn:aws::s3:{{region}}:{{111122223333}}:accesspoint/{{{{my-access-point}}}}",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/project": "${aws:PrincipalTag/project}"
        },
        "ForAllValues:StringEquals": {
          "aws:TagKeys": [
            "{{project}}",
            "{{environment}}",
            "{{owner}}",
            "{{cost-center}}"
          ]
        }
      }
    }
  ]
}
```

#### 1.4 - 使用 s3:AccessPointTag 條件索引鍵
<a name="example-access-points-policy-bucket-tag"></a>

在此 IAM 政策中，如果存取點具有標籤索引鍵 `Environment` 和標籤值 `Production`，則條件陳述式允許存取儲存貯體的資料。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessToSpecificAccessPoint",
      "Effect": "Allow",
      "Action": "*",
      "Resource": "arn:aws::s3:{{region}}:{{111122223333}}:accesspoint/{{{{my-access-point}}}}",
      "Condition": {
        "StringEquals": {
          "s3:AccessPointTag/Environment": "Production"
        }
      }
    }
  ]
}
```

#### 1.5 - 使用儲存貯體委派政策
<a name="example-access-points-policy-delegate"></a>

在 Amazon S3 中，您可以將對 S3 儲存貯體政策的存取或控制委派給另一個 AWS 帳戶或其他帳戶中的特定 AWS Identity and Access Management (IAM) 使用者或角色。委派儲存貯體政策會將其他帳戶、使用者或角色許可權授予您的儲存貯體及其物件。如需詳細資訊，請參閱[許可委派](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-policy-language-overview.html#permission-delegation)。

如果使用委派儲存貯體政策，如下所示：

```
{
  "Version": "2012-10-17",		 	 	 
    "Statement": {
      "Principal": {"AWS": "*"},
        "Effect": "Allow",
        "Action": ["s3:*"],
        "Resource":["arn:aws::s3:::{{{{amzn-s3-demo-bucket}}}}/*", "arn:aws::s3:::{{amzn-s3-demo-bucket}}"],
           "Condition": {
             "StringEquals" : {
                "s3:DataAccessPointAccount" : "111122223333"
             }
           }
    }
}
```

在下列 IAM 政策中，當儲存貯體具有標籤索引鍵 `Environment` 和標籤值 `Production` 時，條件陳述式允許存取儲存貯體的資料。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessToSpecificAccessPoint",
      "Effect": "Allow",
      "Action": "*",
      "Resource": "arn:aws::s3:{{region}}:{{111122223333}}:accesspoint/{{{{my-access-point}}}}",
      "Condition": {
        "StringEquals": {
          "s3:AccessPointTag/Environment": "Production"
        }
      }
    }
  ]
}
```

## 使用一般用途儲存貯體存取點的標籤
<a name="working-with-tags-access-points"></a>

您可以使用 Amazon S3 主控台、 AWS 命令列界面 (CLI)、 AWS SDKs 或使用 S3 APIs 來新增或管理存取點的標籤：[TagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_TagResource.html)、[UntagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UntagResource.html) 和 [ListTagsForResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListTagsForResource.html)。如需詳細資訊，請參閱：

**Topics**
+ [搭配使用標籤和存取點的常見方式](#common-ways-to-use-tags-directory-bucket)
+ [使用一般用途儲存貯體存取點的標籤](#working-with-tags-access-points)
+ [使用標籤建立存取點](access-points-create-tag.md)
+ [將標籤新增至存取點](access-points-tag-add.md)
+ [檢視存取點標籤](access-points-tag-view.md)
+ [從存取點刪除標籤](access-points-tag-delete.md)