

# 将标签与 S3 目录存储桶结合使用
<a name="directory-buckets-tagging"></a>

AWS 标签是保存有关资源的元数据的键值对，在本例中为 Amazon S3 目录存储桶。您可以在创建 S3 目录存储桶时为其添加标签，也可以管理现有目录存储桶上的标签。有关标签的一般信息，请参阅[添加标签以进行成本分配或基于属性的访问权限控制（ABAC）](tagging.md)。

**注意**  
在超过标准 S3 API 请求速率的目录存储桶上使用标签无需额外付费。有关更多信息，请参阅 [Amazon S3 定价](https://aws.amazon.com/s3/pricing/)。

## 将标签与目录存储桶结合使用的常用方法
<a name="common-ways-to-use-tags-directory-bucket"></a>

使用 S3 目录存储桶上的标签来执行以下操作：

1. **成本分配**：在 AWS 账单与成本管理中按存储桶标签跟踪存储成本。有关更多信息，请参阅 [Using tags for cost allocation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/tagging.html#using-tags-for-cost-allocation)。

1. **基于属性的访问权限控制（ABAC）**：根据标签扩展访问权限并授予对 S3 目录存储桶的访问权限。有关更多信息，请参阅 [Using tags for ABAC](https://docs.aws.amazon.com/AmazonS3/latest/userguide/tagging.html#using-tags-for-abac)。

**注意**  
您可以将相同的标签同时用于成本分配和访问权限控制。

### 适用于 S3 目录存储桶的 ABAC
<a name="abac-for-directory-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`
  + 使用此键可将您在策略中指定的标签键/值对与附加到资源的键/值对进行比较。例如，您可能会要求只有在资源具有附加的标签键 `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 目录存储桶。要在 `CreateBucket` API 操作期间支持添加标签，您必须创建同时包含 `s3express:TagResource` 和 `s3express:CreateBucket` 操作的策略。然后，您可以使用 `aws:TagKeys` 条件键来强制在 `CreateBucket` 请求中使用特定的标签。
+ `s3express:BucketTag/tag-key`
  + 使用此条件键，可使用标签授予对目录存储桶中特定数据的权限。使用接入点访问目录存储桶时，在针对接入点以及目录存储桶进行授权时，此条件键均会引用目录存储桶上的标签，而 `aws:ResourceTag/tag-key` 将仅引用它获得授权的资源的标签。

### 目录存储桶的 ABAC 策略示例
<a name="example-directory-buckets-abac-policies"></a>

请参阅以下适用于 Amazon S3 目录存储桶的 ABAC 策略示例。

#### 1.1 - 用于创建或修改具有特定标签的存储桶的 IAM 策略
<a name="example-user-policy-request-tag"></a>

在此 IAM 策略中，具有此策略的用户或角色只有在存储桶创建请求中使用标签键 `project` 和标签值 `Trinity` 来为存储桶添加标签时，才会创建 S3 目录存储桶。他们还可以在现有 S3 目录存储桶上添加或修改标签，前提是 `TagResource` 请求包含标签键值对 `project:Trinity`。此策略不授予对存储桶或其对象的读取、写入或删除权限。

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

#### 1.2 - 使用标签限制对存储桶的操作的存储桶策略
<a name="example-user-policy-resource-tag"></a>

在此存储桶策略中，IAM 主体（用户和角色）只有在存储桶的 `project` 标签的值与主体的 `project` 标签的值匹配时，才会使用 `CreateSession` 操作对存储桶执行操作。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowObjectOperations",
      "Effect": "Allow",
      "Principal": {
        "AWS": "111122223333"
      },
      "Action": "s3express:CreateSession",
      "Resource": "arn:aws::s3express:us-west-2:111122223333:bucket/amzn-s3-demo-bucket--usw2-az1--x-s3",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/project": "${aws:PrincipalTag/project}"
        }
      }
    }
  ]
}
```

#### 1.3 - 修改现有资源上的标签以维护标签治理的 IAM 策略
<a name="example-user-policy-tag-keys"></a>

在此 IAM 策略中，IAM 主体（用户或角色）只有在存储桶的 `project` 标签的值与主体的 `project` 标签的值匹配时，才会修改存储桶上的标签。这些目录存储桶只允许使用在 `aws:TagKeys` 条件键中指定的四个标签 `project`、`environment`、`owner` 和 `cost-center`。这有助于强制执行标签治理，防止未经授权修改标签，并使标签架构跨存储桶保持一致。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "EnforceTaggingRulesOnModification",
      "Effect": "Allow",
      "Action": [
        "s3express:TagResource"
      ],
      "Resource": "arn:aws::s3express:us-west-2:111122223333:bucket/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/project": "${aws:PrincipalTag/project}"
        },
        "ForAllValues:StringEquals": {
          "aws:TagKeys": [
            "project",
            "environment",
            "owner",
            "cost-center"
          ]
        }
      }
    }
  ]
}
```

#### 1.4 - 使用 s3express:BucketTag 条件键
<a name="example-policy-bucket-tag"></a>

在此 IAM 策略中，条件语句仅在存储桶具有标签键 `Environment` 和标签值 `Production` 时，才支持访问存储桶的数据。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessToSpecificAccessPoint",
      "Effect": "Allow",
      "Action": "*",
      "Resource": "arn:aws::s3express:us-west-2:111122223333:accesspoint/*",
      "Condition": {
        "StringEquals": {
          "s3express:BucketTag/Environment": "Production"
        }
      }
    }
  ]
}
```

## 管理目录存储桶的标签
<a name="working-with-tags"></a>

您可以使用 Amazon S3 控制台、AWS 命令行界面（CLI）、AWS SDK 或以下 S3 API 为 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**
+ [将标签与目录存储桶结合使用的常用方法](#common-ways-to-use-tags-directory-bucket)
+ [管理目录存储桶的标签](#working-with-tags)
+ [创建带有标签的目录存储桶](directory-bucket-create-tag.md)
+ [向目录存储桶添加标签](directory-bucket-tag-add.md)
+ [查看目录存储桶标签](directory-bucket-tag-view.md)
+ [从目录存储桶删除标签](directory-bucket-tag-delete.md)

# 创建带有标签的目录存储桶
<a name="directory-bucket-create-tag"></a>

您可以在创建 Amazon S3 目录存储桶时为它们添加标签。在超过标准 S3 API 请求速率的目录存储桶上使用标签无需额外付费。有关更多信息，请参阅 [Amazon S3 定价](https://docs.aws.amazon.com/s3/pricing/)。有关为目录存储桶添加标签的更多信息，请参阅[将标签与 S3 目录存储桶结合使用](directory-buckets-tagging.md)。

## 权限
<a name="create-tag-permissions"></a>

要创建带有标签的目录存储桶，您必须具有以下权限：
+ `s3express:CreateBucket`
+ `s3express:TagResource`

## 错误故障排除
<a name="create-tag-troubleshooting"></a>

如果您在尝试创建带有标签的目录存储桶时遇到错误，可以执行以下操作：
+ 确认您具备创建目录存储桶并向其添加标签所需的[权限](#create-tag-permissions)。
+ 检查 IAM 用户策略，了解是否存在任何基于属性的访问权限控制（ABAC）条件。您可能需要仅使用特定的标签键和值来标记目录存储桶。有关更多信息，请参阅 [使用标签进行基于属性的访问权限控制（ABAC）](tagging.md#using-tags-for-abac)。

## Steps
<a name="create-tag-steps"></a>

您可以使用 Amazon S3 控制台、AWS Command Line Interface（AWS CLI）、Amazon S3 REST API 和 AWS SDK 来创建应用了标签的目录存储桶。

## 使用 S3 控制台
<a name="directory-bucket-create-tag-console"></a>

使用 Amazon S3 控制台创建带有标签的目录存储桶：

1. 登录到 Amazon S3 控制台，网址为：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择**目录存储桶**。

1. 选择**创建存储桶**以创建新的目录存储桶。

1. 您可以创建两种类型的目录存储桶：

   在可用区中创建用于处理高性能工作负载的目录存储桶。有关更多信息，请参阅 [高性能工作负载](directory-bucket-high-performance.md)。

   在本地区域中创建用于处理数据驻留工作负载的目录存储桶。有关更多信息，请参阅 [数据驻留工作负载](directory-bucket-data-residency.md)。

1. 对于这两种类型的目录存储桶，当创建新的目录存储桶时，在**创建存储桶**页面上，**标签**是一个选项。

1. 输入存储桶的名称。有关更多信息，请参阅 [目录存储桶命名规则](directory-bucket-naming-rules.md)。

1. 选择**添加新标签**以打开标签编辑器并输入标签键值对。标签键是必需的，但值是可选的。

1. 要添加其它标签，请再次选择**添加新标签**。最多可输入 50 个标签键值对。

1. 在您完成为新的目录存储桶指定选项后，选择**创建存储桶**。

## 使用 AWS SDK
<a name="directory-bucket-create-tag-sdks"></a>

------
#### [ SDK for Java 2.x ]

此示例说明如何使用AWS SDK for Java 2.x 创建带有标签的目录存储桶。要使用该命令，请将*用户输入占位符* 替换为您自己的信息。

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.BucketInfo;
import software.amazon.awssdk.services.s3.model.BucketType;
import software.amazon.awssdk.services.s3.model.CreateBucketConfiguration;
import software.amazon.awssdk.services.s3.model.CreateBucketRequest;
import software.amazon.awssdk.services.s3.model.CreateBucketResponse;
import software.amazon.awssdk.services.s3.model.DataRedundancy;
import software.amazon.awssdk.services.s3.model.LocationInfo;
import software.amazon.awssdk.services.s3.model.LocationType;
import software.amazon.awssdk.services.s3.model.Tag;

public class CreateBucketWithTagsExample {
    public static void createBucketWithTagsExample() {
        S3Client s3 = S3Client.builder().region(Region.US_WEST_2).build();

        CreateBucketConfiguration bucketConfiguration = CreateBucketConfiguration.builder()
                .location(LocationInfo.builder()
                        .type(LocationType.AVAILABILITY_ZONE)
                        .name("usw2-az1").build())
                .bucket(BucketInfo.builder()
                        .type(BucketType.DIRECTORY)
                        .dataRedundancy(DataRedundancy.SINGLE_AVAILABILITY_ZONE)
                        .build())
                .tags(Tag.builder().key("MyTagKey").value("MyTagValue").build())
                .build();

        CreateBucketRequest createBucketRequest = CreateBucketRequest.builder()
                .bucket("amzn-s3-demo-bucket--usw2-az1--x-s3--usw2-az1--x-s3")
                .createBucketConfiguration(bucketConfiguration)
                .build();

        CreateBucketResponse response = s3.createBucket(createBucketRequest);
        System.out.println("Status code (should be 200):");
        System.out.println(response.sdkHttpResponse().statusCode());
    }
}
```

------

## 使用 REST API
<a name="directory-bucket-tag-delete-api"></a>

有关 Amazon S3 REST API 支持创建带有标签的目录存储桶的信息，请参阅《Amazon Simple Storage Service API Reference》**中的以下部分：
+ [:CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)

## 使用 AWS CLI
<a name="directory-bucket-create-tag-cli"></a>

要安装 AWS CLI，请参阅《AWS Command Line Interface 用户指南》**中的[安装 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

以下 CLI 示例说明如何使用 AWS CLI 创建带有标签的目录存储桶。要使用该命令，请将*用户输入占位符* 替换为您自己的信息。

创建目录存储桶时，必须提供配置详细信息并使用以下命名约定：`bucket-base-name--zone-id--x-s3`

**请求:**

```
aws s3api create-bucket \
--bucket bucket-base-name--zone-id--x-s3 \
--create-bucket-configuration "Location={Type=AvailabilityZone,Name=zone-id},Bucket={DataRedundancy=SingleAvailabilityZone,Type=Directory},Tags=[{Key=mykey1,Value=myvalue1}, {Key=mykey2,Value=myvalue2}]"
```

**响应:**

```
{
  "Location": "http://bucket--use1-az4--x-s3.s3express-use1-az4.us-east-1.amazonaws.com/"
}
```

# 向目录存储桶添加标签
<a name="directory-bucket-tag-add"></a>



您可以向 Amazon S3 目录存储桶添加标签并修改这些标签。在超过标准 S3 API 请求速率的目录存储桶上使用标签无需额外付费。有关更多信息，请参阅 [Amazon S3 定价](https://docs.aws.amazon.com/s3/pricing/)。有关为目录存储桶添加标签的更多信息，请参阅[将标签与 S3 目录存储桶结合使用](directory-buckets-tagging.md)。

## 权限
<a name="tag-add-permissions"></a>

要向目录存储桶添加标签，您必须具有以下权限：
+ `s3express:TagResource`

## 错误故障排除
<a name="tag-add-troubleshooting"></a>

如果您在尝试向目录存储桶添加标签时遇到错误，可以执行以下操作：
+ 验证您是否具备向目录存储桶添加标签所需的[权限](#tag-add-permissions)。
+ 如果您尝试添加以 AWS 保留前缀 `aws:` 开头的标签键，请更改标签键并重试。

## Steps
<a name="tag-add-steps"></a>

您可以使用 Amazon S3 控制台、AWS 命令行界面（AWS CLI）、Amazon S3 REST API 和 AWS SDK 向目录存储桶添加标签。

## 使用 S3 控制台
<a name="directory-bucket-tag-add-console"></a>

使用 Amazon S3 控制台向目录存储桶添加标签：

1. 登录到 Amazon S3 控制台，网址为：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择**目录存储桶**。

1. 选择存储桶名称。

1. 选择**属性**选项卡。

1. 滚动到**标签**部分，然后选择**添加新标签**。

1. 这会打开**添加标签**页面。最多可以输入 50 个标签键值对。

1. 如果您添加的新标签与现有标签具有相同的键名称，则新标签的值将覆盖现有标签的值。

1. 还可以在此页面上编辑现有标签的值。

1. 添加标签后，选择**保存更改**。

## 使用 AWS SDK
<a name="directory-bucket-tag-add-sdks"></a>

------
#### [ SDK for Java 2.x ]

此示例显示如何使用AWS SDK for Java 2.x 向目录存储桶添加标签。要使用该命令，请将*用户输入占位符* 替换为您自己的信息。

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.Tag;
import software.amazon.awssdk.services.s3control.model.TagResourceRequest;
import software.amazon.awssdk.services.s3control.model.TagResourceResponse;

public class TagResourceExample {
    public static void tagResourceExample() {
        S3ControlClient s3Control = S3ControlClient.builder().region(Region.US_WEST_2).build();

        TagResourceRequest tagResourceRequest = TagResourceRequest.builder()
                .resourceArn("arn:aws::s3express:us-west-2:111122223333:bucket/my-directory-bucket--usw2-az1--x-s3")
                .accountId("111122223333")
                .tags(Tag.builder().key("MyTagKey").value("MyTagValue").build())
                .build();

        TagResourceResponse response = s3Control.tagResource(tagResourceRequest);
        System.out.println("Status code (should be 204):");
        System.out.println(response.sdkHttpResponse().statusCode());
    }
}
```

------

## 使用 REST API
<a name="directory-bucket-tag-add-api"></a>

有关 Amazon S3 REST API 支持向目录存储桶添加标签的信息，请参阅《Amazon Simple Storage Service API Reference》**中的以下部分：
+ [TagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_TagResource.html)

## 使用 AWS CLI
<a name="directory-bucket-tag-add-cli"></a>

要安装 AWS CLI，请参阅《AWS Command Line Interface 用户指南》**中的[安装 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

以下 CLI 示例显示如何使用 AWS CLI 向目录存储桶添加标签。要使用该命令，请将*用户输入占位符* 替换为您自己的信息。

**请求:**

```
aws s3control tag-resource \
--account-id 111122223333 \
--resource-arn arn:aws::s3express:us-east-1:444455556666:bucket/prefix--use1-az4--x-s3 \
--tags "Key=mykey,Value=myvalue"
```

**响应:**

```
{
  "ResponseMetadata": {
      "RequestId": "EXAMPLE123456789",
      "HTTPStatusCode": 200,
      "HTTPHeaders": {
          "date": "Wed, 19 Jun 2025 10:30:00 GMT",
          "content-length": "0"
      },
      "RetryAttempts": 0
  }
}
```

# 查看目录存储桶标签
<a name="directory-bucket-tag-view"></a>

您可以查看或列出应用于 S3 目录存储桶的标签。有关标签的更多信息，请参阅[将标签与 S3 目录存储桶结合使用](directory-buckets-tagging.md)。

## 权限
<a name="tag-view-permissions"></a>

要查看应用于目录存储桶的标签，您必须具有以下权限：
+ `s3express:ListTagsForResource`

## 错误故障排除
<a name="tag-view-troubleshooting"></a>

如果您在尝试列出或查看目录存储桶的标签时遇到错误，可以执行以下操作：
+ 确认您具备查看或列出目录存储桶的标签所需的[权限](#tag-view-permissions)。

## Steps
<a name="tag-view-steps"></a>

您可以使用 Amazon S3 控制台、AWS Command Line Interface（AWS CLI）、Amazon S3 REST API 和 AWS SDK 来查看应用于目录存储桶的标签。

## 使用 S3 控制台
<a name="directory-bucket-tag-view-console"></a>

使用 Amazon S3 控制台查看应用于目录存储桶的标签：

1. 登录到 Amazon S3 控制台，网址为：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择**目录存储桶**。

1. 选择存储桶名称。

1. 选择**属性**选项卡。

1. 滚动至**标签**部分，以查看应用于目录存储桶的所有标签。

1. 默认情况下，**标签**部分显示**用户定义的标签**。您可以选择 **AWS 生成的标签**选项卡来查看 AWS 服务应用于目录存储桶的标签。

## 使用 AWS SDK
<a name="directory-bucket-tag-view-sdks"></a>

本节中的示例说明了如何使用 AWS SDK 查看应用于目录存储桶的标签。

------
#### [ SDK for Java 2.x ]

此示例说明如何使用AWS SDK for Java 2.x 查看应用于目录存储桶的标签。

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.ListTagsForResourceRequest;
import software.amazon.awssdk.services.s3control.model.ListTagsForResourceResponse;

public class ListTagsForResourceExample {
    public static void listTagsForResourceExample() {
        S3ControlClient s3Control = S3ControlClient.builder().region(Region.US_WEST_2).build();

        ListTagsForResourceRequest listTagsForResourceRequest = ListTagsForResourceRequest.builder()
                .resourceArn("arn:aws::s3express:us-west-2:111122223333:bucket/my-directory-bucket--usw2-az1--x-s3")
                .accountId("111122223333")
                .build();

        ListTagsForResourceResponse response = s3Control.listTagsForResource(listTagsForResourceRequest);
        System.out.println("Tags on my resource:");
        System.out.println(response.toString());
    }
}
```

------

## 使用 REST API
<a name="directory-bucket-tag-view-api"></a>

有关 Amazon S3 REST API 支持查看应用于目录存储桶的标签的信息，请参阅《Amazon Simple Storage Service API Reference》**中的以下部分：
+ [ListTagsforResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListTagsForResource.html)

## 使用 AWS CLI
<a name="directory-bucket-tag-view-cli"></a>

要安装 AWS CLI，请参阅《AWS Command Line Interface 用户指南》**中的[安装 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

以下 CLI 示例显示如何查看应用于目录存储桶的标签。要使用该命令，请将*用户输入占位符* 替换为您自己的信息。

**请求**

```
aws s3control list-tags-for-resource \
--account-id 111122223333 \
--resource-arn arn:aws::s3express:us-east-1:444455556666:bucket/prefix--use1-az4--x-s3 \
```

**响应 - 存在标签：**

```
{
  "Tags": [
      {
          "Key": "MyKey1",
          "Value": "MyValue1"
      },
      {
          "Key": "MyKey2",
          "Value": "MyValue2"
      },
      {
          "Key": "MyKey3",
          "Value": "MyValue3"
      }
  ]
}
```

**响应 - 不存在任何标签：**

```
{
  "Tags": []
}
```

# 从目录存储桶删除标签
<a name="directory-bucket-tag-delete"></a>

您可以从 S3 目录存储桶中移除标签。AWS 标签是保存有关资源的元数据的键值对，在本例中为 Amazon S3 目录存储桶。有关标签的更多信息，请参阅[将标签与 S3 目录存储桶结合使用](directory-buckets-tagging.md)。

**注意**  
如果您删除某个标签，但后来得知该标签用于跟踪成本或用于访问权限控制，则可以将该标签重新添加到目录存储桶。

## 权限
<a name="tag-delete-permissions"></a>

要从目录存储桶删除标签，您必须具有以下权限：
+ `s3express:UntagResource`

## 错误故障排除
<a name="tag-delete-troubleshooting"></a>

如果在尝试从目录存储桶删除标签时遇到错误，可以执行以下操作：
+ 验证您是否具备从目录存储桶删除标签所需的[权限](#tag-delete-permissions)。

## Steps
<a name="tag-delete-steps"></a>

可以使用 Amazon S3 控制台、AWS Command Line Interface（AWS CLI）、Amazon S3 REST API 和 AWS SDK 从目录存储桶删除标签。

## 使用 S3 控制台
<a name="directory-bucket-tag-delete-console"></a>

使用 Amazon S3 控制台从目录存储桶删除标签：

1. 登录到 Amazon S3 控制台，网址为：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择**目录存储桶**。

1. 选择存储桶名称。

1. 选择**属性**选项卡。

1. 滚动到**标签**部分，然后选中要删除的一个或多个标签旁边的复选框。

1. 选择**删除**。

1. 将显示**删除用户定义的标签**弹出窗口，要求您确认删除所选的一个或多个标签。

1. 选择**删除**以确认。

## 使用 AWS SDK
<a name="directory-bucket-tag-delete-sdks"></a>

------
#### [ SDK for Java 2.x ]

此示例说明如何使用AWS SDK for Java 2.x 从目录存储桶删除标签。要使用该命令，请将*用户输入占位符* 替换为您自己的信息。

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.UntagResourceRequest;
import software.amazon.awssdk.services.s3control.model.UntagResourceResponse;

public class UntagResourceExample {
    public static void untagResourceExample() {
        S3ControlClient s3Control = S3ControlClient.builder().region(Region.US_WEST_2).build();

        UntagResourceRequest untagResourceRequest = UntagResourceRequest.builder()
                .resourceArn("arn:aws::s3express:us-west-2:111122223333:bucket/my-directory-bucket--usw2-az1--x-s3")
                .accountId("111122223333")
                .tagKeys("myTagKey")
                .build();

        UntagResourceResponse response = s3Control.untagResource(untagResourceRequest);
        System.out.println("Status code (should be 204):");
        System.out.println(response.sdkHttpResponse().statusCode());
    }
}
```

------

## 使用 REST API
<a name="directory-bucket-tag-delete-api"></a>

有关 Amazon S3 REST API 支持从目录存储桶删除标签的信息，请参阅《Amazon Simple Storage Service API Reference》**中的以下部分：
+ [UnTagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UntagResource.html)

## 使用 AWS CLI
<a name="directory-bucket-tag-delete-cli"></a>

要安装 AWS CLI，请参阅《AWS Command Line Interface 用户指南》**中的[安装 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

下面的 CLI 示例显示如何使用 AWS CLI 从目录存储桶删除标签。要使用该命令，请将*用户输入占位符* 替换为您自己的信息。

**请求:**

```
aws s3control untag-resource \
--account-id 111122223333 \
--resource-arn arn:aws::s3express:us-east-1:444455556666:bucket/prefix--use1-az4--x-s3 \
--tag-keys "tagkey1" "tagkey2"
```

**响应:**

```
{
  "ResponseMetadata": {
    "RequestId": "EXAMPLE123456789",
    "HTTPStatusCode": 204,
    "HTTPHeaders": {
        "date": "Wed, 19 Jun 2025 10:30:00 GMT",
        "content-length": "0"
    },
    "RetryAttempts": 0
  }
}
```