

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

# 搭配 S3 一般用途儲存貯體使用標籤
<a name="buckets-tagging"></a>

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

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

## 搭配儲存貯體使用標籤的常見方式
<a name="common-ways-to-use-tags-bucket"></a>

在 S3 儲存貯體上使用標籤：

1. **成本分配** – 依照 AWS 帳單與成本管理中的儲存貯體標籤追蹤儲存成本。如需詳細資訊，請參閱[使用標籤分配成本](https://docs.aws.amazon.com/AmazonS3/latest/userguide/tagging.html#using-tags-for-cost-allocation)。

1. **屬性型存取控制 (ABAC)** – 擴展存取許可，並根據 S3 儲存貯體的標籤授予存取權。如需詳細資訊，請參閱[使用標籤執行 ABAC](https://docs.aws.amazon.com/AmazonS3/latest/userguide/tagging.html#using-tags-for-abac)。
**注意**  
對於一般用途儲存貯體，預設不會啟用 ABAC。若要為一般用途儲存貯體啟用 ABAC，請參閱 [在一般用途儲存貯體中啟用 ABAC](buckets-tagging-enable-abac.md)。對於存取點和目錄儲存貯體等 Amazon S3 資源，預設為啟用 ABAC。您可以將相同的標籤同時用於成本分配和存取控制。

### 適用於 S3 一般用途儲存貯體的 ABAC
<a name="abac-for-buckets"></a>

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

在 IAM 政策中，您可以使用下列[全域條件金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys)，根據儲存貯體的標籤控制對 S3 儲存貯體的存取：
+ `aws:ResourceTag/key-name`
  + 使用此條件金鑰來比較您在政策中指定的標籤鍵/值對，以及連接到資源的鍵/值對。S3 只會在儲存貯體上啟用 ABAC 之後評估此條件金鑰。例如，您可以要求只在資源擁有連接標籤鍵 `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` 和 `CreateBucket` API 操作期間可以傳遞哪些標籤鍵值對。
+ `aws:TagKeys`
  + 使用此條件索引鍵，將請求中的標籤索引鍵與您在政策中指定的索引鍵進行比較。當使用政策來控制使用標籤的存取時，建議您使用 `aws:TagKeys` 條件鍵來定義允許的標籤鍵。如需範例政策和詳細資訊，請參閱[根據標籤金鑰控制存取權限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-tag-keys)。
+ `s3:BucketTag/tag-key`
  + 使用此條件索引鍵，使用標籤將許可授予儲存貯體中的特定資料。此條件金鑰僅適用於在儲存貯體上啟用 ABAC 之後。使用存取點存取儲存貯體時， `aws:ResourceTag/tag-key`條件索引鍵會在授權存取點和儲存貯體時參考儲存貯體上的標籤。只會`s3:BucketTag/tag-key`參考其授權之儲存貯體的標籤。

**注意**  
建立具有標籤的儲存貯體時，請注意，使用 aws：ResourceTag 和 s3：BucketTag 條件金鑰存取儲存貯體的標籤型條件僅適用於在儲存貯體上啟用 ABAC 之後。如需詳細資訊，請參閱 [在一般用途儲存貯體中啟用 ABAC](buckets-tagging-enable-abac.md)。

### 儲存貯體的範例 ABAC 政策
<a name="example-buckets-abac-policies"></a>

請參閱下列 Amazon S3 儲存貯體的 ABAC 政策範例。

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

在此 IAM 政策中，具有此政策的使用者或角色只有在儲存貯體在儲存貯體建立請求`Trinity `中以標籤索引鍵`project`和標籤值標記時，才能建立 S3 儲存貯體。只要`TagResource`請求包含標籤鍵/值對 ，他們也可以新增或修改現有 S3 儲存貯體上的標籤`project:Trinity`。此政策不會授予對儲存貯體或其物件的讀取、寫入或刪除權限。

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

#### 1.2 - 限制操作的儲存貯體政策
<a name="example-user-policy-resource-tag"></a>

在此儲存貯體政策中，只有在儲存貯體上的`project `標籤值符合主體上的`project`標籤值時`s3:GetObject`，才會拒絕儲存貯體上的 IAM 主體 （使用者和角色） `s3:ListBucket`、 和 `s3:PutObject`動作。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenyObjectOperations",
            "Effect": "Deny",
            "Principal": "*",
            "Action": ["s3:ListBucket",
                       "s3:GetObject",
                       "s3:PutObject"],
            "Resource": "arn:aws:s3:::aws-s3-demo/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/project": "${aws:PrincipalTag/project}"
                }
            }
        }
    ]
}
```

#### 1.3 - 修改現有資源上標籤的 IAM 政策
<a name="example-user-policy-tag-keys"></a>

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

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "EnforceTaggingRulesOnModification",
      "Effect": "Allow",
      "Action": [
        "s3:TagResource",
        "s3:CreateBucket"
      ],
      "Resource": "*",
      "Condition": {
        "ForAllValues:StringEquals": {
          "aws:TagKeys": [
            "project",
            "environment",
            "owner",
            "cost-center"
          ]
        }
      }
    }
  ]
}
```

#### 1.4 - 使用 s3：BucketTag 條件金鑰
<a name="example-policy-bucket-tag"></a>

在此 IAM 政策中，只有在`aws-s3-demo`儲存貯體具有標籤索引鍵 `Environment`和標籤值 時，條件陳述式才允許存取儲存貯體的資料`Production`。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessViaSpecificBucket",
      "Effect": "Allow",
      "Action": "*",
      "Resource": ["arn:aws:s3:::aws-s3-demo","arn:aws:s3:::aws-s3-demo/*"],
      "Condition": {
        "StringEquals": {
          "s3:BucketTag/Environment": "Production"
        }
      }
    }
  ]
}
```

## 管理一般用途儲存貯體的標籤
<a name="managing-tags-general-buckets"></a>

您可以使用 Amazon S3 主控台、 AWS 命令列界面 (CLI)、 AWS SDKs 或使用 S3 APIs 來新增或管理 S3 儲存貯體的標籤：[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**