

# 表存储桶
<a name="s3-tables-buckets"></a>

Amazon S3 表存储桶是一种 S3 存储桶类型，可用于创建表并将其存储为 S3 资源。表存储桶用于将表数据和元数据存储为对象，以便在分析工作负载中使用。S3 会自动在表存储桶中执行维护，有助于降低表存储成本。有关更多信息，请参阅 [S3 表类数据存储服务维护](s3-tables-maintenance-overview.md)。

要与存储在表存储桶中的表进行交互，可以将表存储桶与支持 [Apache Iceberg](https://iceberg.apache.org/docs/latest/) 的分析应用程序集成。表存储桶通过 AWS Glue Data Catalog 与 AWS 分析服务集成。有关更多信息，请参阅 [将 Amazon S3 表类数据存储服务与 AWS 分析服务集成](s3-tables-integrating-aws.md)。还可以使用适用于 Apache Iceberg 的 Amazon S3 表类数据存储服务目录，通过开源查询引擎与表进行交互。有关更多信息，请参阅 [使用 Amazon S3 表类数据存储服务 Iceberg REST 端点访问表](s3-tables-integrating-open-source.md)。

每个表存储桶都有一个唯一的 Amazon 资源名称（ARN）和附加到它的资源策略。表存储桶 ARN 采用以下格式：

```
arn:aws:s3tables:Region:OwnerAccountID:bucket/bucket-name
```

所有表存储桶和表都是私有的，不能使之成为公有的。只有被明确授予访问权限的用户才可以访问这些资源。要授予访问权限，您可以对表存储桶和表使用基于 IAM 资源的策略，并对用户和角色使用基于 IAM 身份的策略。

默认情况下，您可以在 AWS 账户中为每个 AWS 区域创建最多 10 个表存储桶。要请求增加表存储桶或表的配额，请联系 [支持](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase)。

## 表存储桶的类型
<a name="s3-tables-buckets-types"></a>

Amazon S3 支持以下类型的表存储桶：

**客户管理的表存储桶**  <a name="s3-tables-buckets-customer-managed"></a>
客户管理的表存储桶是用于存储客户创建和管理的 Amazon S3 表的资源。可以显式创建这些存储桶，选择其名称，并保持对其中的表和命名空间的完全控制权。对于客户管理的表存储桶，可以根据需要创建、删除、设置自定义默认加密或配置维护选项。

**AWS 托管式表存储桶**  <a name="s3-tables-buckets-aws-managed"></a>
AWS 托管式表存储桶是自动存储由 AWS 服务创建的表的 AWS 托管式资源，例如 S3 元数据创建的实时清单表和日记表。这些存储桶为所有系统生成的表提供了一个集中位置。这些存储桶遵循标准命名约定，对所有表使用标准命名空间，并具有预设的维护和默认加密配置，S3 会代表您修改这些配置。您拥有查询数据的只读权限，而 AWS 处理所有表创建、更新和维护操作。有关更多信息，请参阅 [使用 AWS 托管式表存储桶](s3-tables-aws-managed-buckets.md)。

Amazon S3 存储桶有几种类型。在创建存储桶之前，请确保选择最适合应用程序和性能要求的存储桶类型。有关各种存储桶类型以及每种类型的相应用例的更多信息，请参阅[桶](Welcome.md#BasicsBucket)。

**Topics**
+ [表存储桶的类型](#s3-tables-buckets-types)
+ [Amazon S3 表存储桶、表和命名空间命名规则](s3-tables-buckets-naming.md)
+ [创建表存储桶](s3-tables-buckets-create.md)
+ [删除表存储桶](s3-tables-buckets-delete.md)
+ [查看有关 Amazon S3 表存储桶的详细信息](s3-tables-buckets-details.md)
+ [管理表存储桶策略](s3-tables-bucket-policy.md)
+ [使用 AWS 托管式表存储桶](s3-tables-aws-managed-buckets.md)
+ [将标签与 S3 表存储桶结合使用](table-bucket-tagging.md)

# Amazon S3 表存储桶、表和命名空间命名规则
<a name="s3-tables-buckets-naming"></a>

创建表存储桶时，您选择存储桶名称和 AWS 区域，该名称在所选区域中对于您的账户必须是唯一的。创建表存储桶后，无法更改存储桶名称或区域。表存储桶名称必须遵循特定的命名规则。有关表存储桶及其中的表和命名空间的命名规则的更多信息，请参阅以下主题。

**Topics**
+ [表存储桶命名规则](#table-buckets-naming-rules)
+ [表和命名空间的命名规则](#naming-rules-table)

## 表存储桶命名规则
<a name="table-buckets-naming-rules"></a>

创建 Amazon S3 表存储桶时，需要指定表存储桶名称。与其它存储桶类型一样，无法重命名表存储桶。与其它存储桶类型不同，表存储桶不在全局命名空间中，因此，您账户中的每个存储桶名称只需要在当前 AWS 区域内保持唯一即可。

有关通用存储桶命名规则，请参阅[通用存储桶命名规则](bucketnamingrules.md)。有关目录存储桶命名规则的信息，请参阅[目录存储桶命名规则](directory-bucket-naming-rules.md)。

以下命名规则适用于表存储桶。
+ 存储桶名称必须介于 3 到 63 个字符之间。
+ 存储桶名称只能由小写字母、数字和连字符 (`-`) 组成。
+ 存储桶名称必须以字母或数字开头和结尾。
+ 存储桶名称不得包含任何下划线 (`_`) 或句点 (`.`)。
+ 存储桶名称不得以下面的任何保留前缀开头：
  + `xn--`
  + `sthree-`
  + `amzn-s3-demo-`
  + `aws`
+ 存储桶名称不得以下面的任何保留后缀结尾：
  + `-s3alias`
  + `--ol-s3`
  + `--x-s3`
  + `--table-s3`

## 表和命名空间的命名规则
<a name="naming-rules-table"></a>

以下命名规则适用于表存储桶中的表和命名空间：
+ 名称长度必须介于 1 到 255 个字符之间。
+ 名称只能由小写字母、数字和下划线 (`_`) 组成。
+ 名称必须以字母或数字开头。
+ 名称不得包含连字符 (`-`) 或句点 (`.`)。
+ 表名称在命名空间内必须是唯一的。
+ 命名空间在表存储桶中必须是唯一的。
+ 命名空间名称不得以保留前缀 `aws` 开头。

**重要**  
创建表时，请确保在表名称和表定义中全部使用小写字母。例如，请确保列名称全部为小写。如果表名称或表定义包含大写字母，则 AWS Lake Formation 或 AWS Glue Data Catalog 不支持该表。在这种情况下，Amazon Athena 等 AWS 分析服务将无法看到您的表，即使表存储桶与 AWS 分析服务集成，也不例外。  
如果表定义包含大写字母，则在 Athena 中运行 `SELECT` 查询时会收到以下错误消息：“GENERIC\$1INTERNAL\$1ERROR: Get table request failed: com.amazonaws.services.glue.model.ValidationException: Unsupported Federation Resource - Invalid table or column names.”

# 创建表存储桶
<a name="s3-tables-buckets-create"></a>

Amazon S3 表存储桶是一种 S3 存储桶类型，可用于创建表并将其存储为 S3 资源。要开始使用 S3 表类数据存储服务，您需要创建一个用于存储和管理表的表存储桶。创建表存储桶时，请选择存储桶名称和 AWS 区域。表存储桶名称在所选区域中对于您的账户必须是唯一的。创建表存储桶后，无法更改存储桶名称或区域。有关命名表存储桶的信息，请参阅 [Amazon S3 表存储桶、表和命名空间命名规则](s3-tables-buckets-naming.md)。

表存储桶具有以下 Amazon 资源名称（ARN）格式：

```
arn:aws:s3tables:region:owner-account-id:bucket/bucket-name
```

默认情况下，可以在 AWS 账户中为每个区域创建最多 10 个表存储桶。要请求增加表存储桶或表的配额，请联系 [支持](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase)。

创建表存储桶时，可以为其指定加密类型，该加密类型将用于加密您在该存储桶中创建的表。有关存储桶加密选项的更多信息，请参阅[使用加密保护 S3 表数据](s3-tables-encryption.md)。

**创建表存储桶的先决条件**

要创建表存储桶，首先必须执行以下操作：
+ 确保您对 `s3tables:CreateTableBucket` 拥有 AWS Identity and Access Management（IAM）权限。

**注意**  
如果您选择 SSE-KMS 作为默认加密类型，则必须对 `s3tables:PutTableBucketEncryption` 拥有权限，并且对所选 AWS KMS 密钥具有 `DescribeKey` 权限。此外，您使用的 AWS KMS 密钥需要向 S3 表类数据存储服务授予执行自动表维护的权限。有关更多信息，请参阅 [S3 表类数据存储服务 SSE-KMS 加密的权限要求](s3-tables-kms-permissions.md)。

要创建表存储桶，可以使用 Amazon S3 控制台、Amazon S3 REST API、AWS Command Line Interface（AWS CLI）或 AWS SDK。

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

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在页面顶部的导航栏中，选择当前所显示 AWS 区域的名称。接下来，选择要在其中创建存储桶的区域。

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

1. 选择**创建表存储桶**以打开**创建表存储桶**页面。

1. 在**属性**下，输入表存储桶的名称。

   表存储桶名称必须满足以下要求：
   + 在当前区域中对于您的账户是唯一的。
   + 长度介于 3 到 63 个字符之间。
   + 只能由小写字母、数字和连字符（-）组成。
   + 以字母或数字开头和结尾。

   创建存储桶后，便无法更改其名称。创建存储桶的 AWS 账户 拥有该存储桶。有关命名表存储桶的信息，请参阅 [Amazon S3 表存储桶、表和命名空间命名规则](s3-tables-buckets-naming.md)。

1. 如果要将表存储桶与 AWS 分析服务集成，请确保在**与 AWS 分析服务集成**下选择**启用集成**。
**注意**  
当您使用控制台并且选择了**启用集成**选项来创建第一个表存储桶时，Amazon S3 会尝试自动将您的表存储桶与 AWS 分析服务集成。这种集成可让您使用 AWS 分析服务来查询当前区域中的所有表。有关更多信息，请参阅 [将 Amazon S3 表类数据存储服务与 AWS 分析服务集成](s3-tables-integrating-aws.md)。

1. 要配置默认加密，请在**加密类型**下，选择以下选项之一：
   + **具有 Amazon S3 托管式密钥的服务器端加密（SSE-S3）**
   + **具有 AWS Key Management Service 密钥的服务器端加密（SSE-KMS）**

   有关表数据的加密选项的更多信息，请参阅[使用加密保护 S3 表数据](s3-tables-encryption.md)。

1. 选择**创建存储桶**。

## 使用 AWS CLI
<a name="create-table-bucket-CLI"></a>

此示例说明如何使用 AWS CLI 创建表存储桶。要使用此示例，请将 `user input placeholders` 替换为您自己的信息。

```
aws s3tables create-table-bucket \
    --region us-east-2 \
    --name amzn-s3-demo-bucket1
```

默认情况下，S3 表存储桶使用 SSE-S3 作为其默认加密设置，但是，您可以使用可选的 `--encryption-configuration` 参数来指定不同的加密类型。以下示例说明如何创建使用 SSE-KMS 加密的存储桶。有关表存储桶的加密设置的更多信息，请参阅[使用加密保护 S3 表数据](s3-tables-encryption.md)。

```
aws s3tables create-table-bucket \
    --region us-east-2 \
    --name amzn-s3-demo-bucket1
    --encryption-configuration '{
                    "sseAlgorithm": "aws:kms",
                    "kmsKeyArn": "arn:aws:kms:Region:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }'
```

# 删除表存储桶
<a name="s3-tables-buckets-delete"></a>

您可以使用 Amazon S3 API、AWS Command Line Interface 或 AWS SDK 来删除表存储桶。在删除表存储桶之前，必须首先删除该存储桶中的所有命名空间和表。

**重要**  
 删除表存储桶时，您需要了解以下事项：  
存储桶删除是永久性的，无法撤消。
与存储桶关联的所有数据和配置都将永久丢失。

## 使用 AWS CLI
<a name="delete-table-bucket-CLI"></a>

此示例说明如何使用 AWS CLI 删除表存储桶。要使用此示例，请将*用户输入占位符* 替换为您自己的信息。

```
aws s3tables delete-table-bucket \
    --region us-east-2 \
    --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket1
```

# 查看有关 Amazon S3 表存储桶的详细信息
<a name="s3-tables-buckets-details"></a>

您可以在控制台中或以编程方式查看 Amazon S3 表存储桶的一般详细信息，例如存储桶拥有者和类型。您可以使用 S3 表类数据存储服务 REST API、AWS CLI 或 AWS SDK，以编程方式查看默认加密设置和维护设置。

## 查看表存储桶详细信息
<a name="table-bucket-details-view"></a>

### 使用 AWS CLI
<a name="table-bucket-details-CLI"></a>

此示例说明如何使用 AWS CLI 获取有关表存储桶的详细信息。要使用此示例，请将*用户输入占位符* 替换为您自己的信息。

```
aws s3tables get-table-bucket --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket
```

### 使用 S3 控制台
<a name="table-bucket-details-CLI"></a>

1. 通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

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

1. 选择表存储桶。

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

## 查看表存储桶加密设置
<a name="table-bucket-encryption-view"></a>

有关表存储桶加密的更多信息，请参阅[在表存储桶中使用具有 AWS KMS 密钥的服务器端加密（SSE-KMS）](s3-tables-kms-encryption.md)。

### 使用 AWS CLI
<a name="table-bucket-encryption-view-CLI"></a>

此示例说明如何使用 AWS CLI 来获取有关表存储桶的加密设置的详细信息。要使用此示例，请将*用户输入占位符* 替换为您自己的信息。

```
aws s3tables get-table-bucket-encryption --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket
```

## 查看表存储桶维护配置
<a name="table-bucket-maintenance-view"></a>

有关维护设置的信息，请参阅[表存储桶的维护](s3-table-buckets-maintenance.md) 

### 使用 AWS CLI
<a name="table-bucket-maintenance-view-CLI"></a>

此示例说明如何使用 AWS CLI 获取有关表存储桶的维护配置设置的详细信息。要使用此示例，请将*用户输入占位符* 替换为您自己的信息。

```
aws s3tables get-table-bucket-maintenance-configuration --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket
```

# 管理表存储桶策略
<a name="s3-tables-bucket-policy"></a>

可以使用 Amazon S3 REST API、AWS SDK 和 AWS Command Line Interface（AWS CLI）来添加、删除、更新和查看 Amazon S3 表存储桶的存储桶策略。有关更多信息，请参阅以下主题。

有关更多信息，请参阅以下主题。有关 Amazon S3 表类数据存储服务支持的 AWS Identity and Access Management（IAM）操作和条件键的更多信息，请参阅 [S3 表类数据存储服务的访问管理](s3-tables-setting-up.md)。有关表存储桶的存储桶策略示例，请参阅 [S3 表类数据存储服务的基于资源的策略](s3-tables-resource-based-policies.md)。

**注意**  
表存储桶策略提供对存储在存储桶中的表的访问权限。表存储桶策略不适用于由其它账户拥有的表。

## 添加表存储桶策略
<a name="table-bucket-policy-add"></a>

要向表存储桶添加存储桶策略，请使用以下 AWS CLI 示例。

### 使用 AWS CLI
<a name="table-bucket-policy-add-CLI"></a>

此示例说明如何使用 AWS CLI 创建表存储桶策略。要使用此命令，请将 `user input placeholders` 替换为您自己的信息。

```
aws s3tables put-table-bucket-policy \
    --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket1  \
    --resource-policy your-policy-JSON
```

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

1. 通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择 **Amazon S3**。

1. 选择**表存储桶**，并选择您要向其添加策略的表存储桶名称。

1. 选择 **Permissions（权限）**选项卡。

1. 在**表存储桶策略**下，选择**编辑**。

1. 在策略编辑器中，输入策略 JSON。

1. （可选）选择**策略示例**以查看可以根据需要调整的示例策略。

1. 输入您的策略后，选择**保存更改**。

## 查看表存储桶策略
<a name="table-bucket-policy-get"></a>

要查看附加到表存储桶的存储桶策略，请使用以下 AWS CLI 示例。

### 使用 AWS CLI
<a name="table-bucket-policy-get-CLI"></a>

此示例说明如何使用 AWS CLI 查看附加到表存储桶的策略。要使用此命令，请将 `user input placeholders` 替换为您自己的信息。

```
aws s3tables get-table-bucket-policy --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket1
```

### 使用 S3 控制台
<a name="get-policy-table-bucket-console"></a>

1. 通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择 **Amazon S3**。

1. 选择**表存储桶**，并选择您要查看其策略的表存储桶名称。

1. 选择 **Permissions（权限）**选项卡。

## 删除表存储桶策略
<a name="table-bucket-policy-delete"></a>

要删除附加到表存储桶的存储桶策略，请使用以下 AWS CLI 示例。

### 使用 AWS CLI
<a name="table-bucket-policy-delete-CLI"></a>

此示例说明如何使用 AWS CLI 删除表存储桶策略。要使用此命令，请将 `user input placeholders` 替换为您自己的信息。

```
aws s3tables delete-table-bucket-policy --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket1
```

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

1. 通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择 **Amazon S3**。

1. 选择**表存储桶**，并选择要为其删除策略的表存储桶名称。

1. 选择 **Permissions（权限）**选项卡。

1. 在**表存储桶策略**下，选择**删除**。

# 使用 AWS 托管式表存储桶
<a name="s3-tables-aws-managed-buckets"></a>

AWS 托管式表存储桶是专用的 Amazon S3 表存储桶，旨在存储 AWS 托管式表，例如 [S3 元数据](metadata-tables-overview.md)日记表和实时清单表。与您直接创建和管理的客户管理的表存储桶不同，AWS 托管式表存储桶是在您配置需要 AWS 托管式表的功能时由 AWS 自动预置的。创建托管式表时，它们属于基于源存储桶名称的预定义命名空间。无法修改此预定义命名空间。

每个 AWS 账户在每个区域都有一个 AWS 托管式表存储桶，并遵循命名约定 `aws-s3`。该存储桶用作与该区域中账户的资源相关联的所有托管式表的集中位置。

下表将 AWS 托管式表存储桶与客户管理的表存储桶进行比较。


| **功能** | **AWS 托管式表存储桶** | **客户管理的表存储桶** | 
| --- | --- | --- | 
| 创建 | 由 AWS 服务自动创建 | 可以手动创建这些存储桶 | 
| 命名 | 使用标准命名约定 (aws-s3) | 您自行定义名称 | 
| 表创建 | 只有 AWS 服务可以创建表 | 您可以创建表 | 
| 命名空间控制 | 您无法创建或删除命名空间（所有表均属于固定的命名空间） | 您可以创建和删除命名空间 | 
|  访问 | 只读访问权限 | 完全访问 | 
| 加密 | 仅当使用客户自主管理型 AWS Key Management Service（AWS KMS）密钥加密初始表时，您才能更改默认加密（SSE-S3）设置。 | 可以设置存储桶级别的默认加密并随时进行修改 | 
| 维护。 | 由 AWS 服务管理 | 可以在存储桶级别自定义自动维护 | 

## 使用 AWS 托管式表存储桶和查询表的权限
<a name="aws-managed-buckets-permissions"></a>

要使用 AWS 托管式表存储桶，您需要具有创建 AWS 托管式表存储桶和表以及为 AWS 托管式表指定加密设置的权限。您还需要具有查询 AWS 托管式表存储桶中的表的权限。

以下示例策略支持您通过 S3 元数据配置创建 AWS 托管式表存储桶：

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"PermissionsToWorkWithMetadataTables",
         "Effect":"Allow",
         "Action":[
             "s3:CreateBucketMetadataTableConfiguration",
             "s3tables:CreateTableBucket",
             "s3tables:CreateNamespace",
             "s3tables:CreateTable",
             "s3tables:GetTable",
             "s3tables:PutTablePolicy"
             "s3tables:PutTableEncryption",
             "kms:DescribeKey"
         ],
         "Resource":[
            "arn:aws:s3:::bucket/amzn-s3-demo-source-bucket",
            "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3",
            "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3/table/*",
            "arn:aws:kms:us-east-1:111122223333:key/01234567-89ab-cdef-0123-456789abcdef"
         ]
       }
    ]
}
```

以下示例策略支持您查询 AWS 托管式表存储桶中的表：

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"PermissionsToQueryMetadataTables",
         "Effect":"Allow",
         "Action":[
             "s3tables:GetTable",
             "s3tables:GetTableData",
             "s3tables:GetTableMetadataLocation",
             "kms:Decrypt"
         ],
         "Resource":[
            "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3",
            "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3/table/*",
            "arn:aws:kms:us-east-1:111122223333:key/01234567-89ab-cdef-0123-456789abcdef"
         ]
       }
    ]
}
```

## 查询 AWS 托管式表存储桶中的表
<a name="querying-tables-in-aws-managed-table-buckets"></a>

可以使用 S3 表支持的访问方法和引擎来查询 AWS 托管式表存储桶中的 AWS 托管式表。下面是一些示例查询。

------
#### [ Using standard SQL ]

以下示例说明如何使用标准 SQL 语法查询 AWS 托管式表：

```
SELECT *
FROM "s3tablescatalog/aws-s3"."b_amzn-s3-demo-source-bucket"."inventory"
LIMIT 10;
```

以下示例说明如何将 AWS 托管式表与您自己的表联接：

```
SELECT *
FROM "s3tablescatalog/aws-s3"."b_amzn-s3-demo-source-bucket"."inventory" a
JOIN "s3tablescatalog/amzn-s3-demo-table-bucket"."my_namespace"."my_table" b
ON a.key = b.key
LIMIT 10;
```

------
#### [ Using Spark ]

以下示例说明如何使用 Spark 查询表：

```
spark.sql("""
    SELECT *
    FROM ice_catalog.inventory a
    JOIN ice_catalog.my_table b
    ON a.key = b.key
""").show(10, true)
```

以下示例说明如何将 AWS 托管式表与另一个表联接：

```
SELECT *
FROM inventory a
JOIN my_table b
ON a.key = b.key
LIMIT 10;
```

------

## AWS 托管式表存储桶的加密
<a name="aws-managed-buckets-encryption"></a>

默认情况下，AWS 托管式表存储桶通过使用 Amazon S3 托管式密钥的服务器端加密（SSE-S3）进行加密。在创建 AWS 托管式表存储桶后，可以使用 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_PutTableBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_PutTableBucketEncryption.html) 来将存储桶的默认加密设置设为使用具有 AWS Key Management Service（AWS KMS）密钥的服务器端加密（SSE-KMS）。

在创建 AWS 托管式表期间，可以选择使用 SSE-KMS 对其进行加密。如果选择使用 SSE-KMS，则必须提供与 AWS 托管式表存储桶位于同一区域的客户自主管理型 KMS 密钥。只能在创建 AWS 托管式表的过程中为表设置加密类型。创建 AWS 托管式表后，无法更改其加密设置。

如果您希望 AWS 托管式表存储桶和存储在其中的表使用相同的 KMS 密钥，请确保在创建表存储桶后，使用您用于加密表的 KMS 密钥对其进行加密。将表存储桶的默认加密设置更改为使用 SSE-KMS 后，这些加密设置将用于将来在存储桶中创建的任何表。

# 将标签与 S3 表存储桶结合使用
<a name="table-bucket-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-table-bucket"></a>

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

**基于属性的访问权限控制（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-table-buckets"></a>

Amazon S3 表存储桶支持使用标签进行基于属性的访问权限控制（ABAC）。请在您的 AWS Organizations、AWS Identity and Access Management（IAM）和 S3 表存储桶策略中使用基于标签的条件键。Amazon S3 中的 ABAC 支持跨多个 AWS 账户进行授权。

在您的 IAM 策略中，您可以使用 `s3tables:TableBucketTag/tag-key` 条件键或 [AWS 全局条件键](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys) `aws:ResourceTag/key-name`、`aws:RequestTag/key-name` 或 `aws:TagKeys`，根据表存储桶的标签控制对 S3 表存储桶的访问。

#### aws:ResourceTag/key-name
<a name="table-bucket-condition-key-resource-tag"></a>

使用此条件键可将您在策略中指定的标签键值对与附加到资源的键值对进行比较。例如，您可能会要求仅在表存储桶具有标签键 `Department` 和值 `Marketing` 时才允许访问该表存储桶。

此条件键将应用于使用 Amazon S3 控制台、AWS 命令行界面（CLI）、S3 API 或 AWS SDK 执行的所有表存储桶操作（针对 `CreateBucket` API 请求的操作除外）。

有关策略示例，请参阅 [1.1：用于通过标签限制对表存储桶内表的操作的表存储桶策略](#example-policy-table-bucket-resource-tag)。

有关更多示例策略和信息，请参阅《AWS Identity and Access Management 用户指南》**中的[控制对 AWS 资源的访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-resources)。

**注意**  
对于对表执行的操作，此条件键将对应用于表的标签起作用，而非应用于包含该表的表存储桶的标签。如果您希望 ABAC 策略在您执行表操作时对表存储桶的标签起作用，请改用 `s3tables:TableBucketTag/tag-key`。

#### aws:RequestTag/key-name
<a name="table-bucket-condition-key-request-tag"></a>

使用此条件键可将请求中传递的标签键值对与您在策略中指定的标签对进行比较。例如，您可以检查为表存储桶添加标签的请求是否包含标签键 `Department` 并具有值 `Accounting`。

在 `TagResource` 或 `CreateTableBucket` API 操作请求中传递标签键时，或者使用 Amazon S3 控制台、AWS 命令行界面（CLI）或 AWS SDK 标记或创建带有标签的表存储桶时，此条件键适用。

有关策略示例，请参阅 [1.2：用于创建或修改具有特定标签的表存储桶的 IAM 策略](#example-policy-table-bucket-request-tag)。

有关更多示例策略和信息，请参阅《AWS Identity and Access Management 用户指南》**中的[在 AWS 请求期间控制访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-requests)。

#### aws:TagKeys
<a name="table-bucket-condition-key-tag-keys"></a>

使用此条件键可将请求中的标签键与您在策略中指定的键进行比较，从而定义允许用于访问操作的标签键。例如，要允许在 `CreateTableBucket` 操作期间添加标签，必须创建一个同时允许 `s3tables:TagResource` 和 `s3tables:CreateTableBucket` 操作的策略。然后，您可以使用 `aws:TagKeys` 条件键来强制仅在 `CreateTableBucket` 请求中使用特定标签。

在 `TagResource`、`UntagResource` 或 `CreateTableBucket` API 操作中传递标签键时，或者使用 Amazon S3 控制台、AWS 命令行界面（CLI）或 AWS SDK 来标记、取消标记或创建带有标签的表存储桶时，此条件键适用。

有关策略示例，请参阅 [1.3：用于控制对现有资源上的标签的修改以保持标签治理的 IAM 策略](#example-policy-table-bucket-tag-keys)。

有关更多示例策略和更多信息，请参阅《AWS Identity and Access Management 用户指南》**中的[根据标签键控制访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-tag-keys)。

#### s3tables:TableBucketTag/tag-key
<a name="table-bucket-condition-key"></a>

使用此条件键可通过标签授予对表存储桶中特定数据的权限。此条件键主要作用于针对所有 S3 表操作分配给表存储桶的标签。即使在您创建带有标签的表时，此条件键也会对应用于包含该表的表存储桶的标签起作用。下面是一些例外情况：
+ 当您创建带有标签的表存储桶时，此条件键会对请求中的标签起作用。

有关策略示例，请参阅 [1.4：使用 s3tables:TableBucketTag 条件键](#example-policy-table-bucket-tag)。

#### 适用于表存储桶的示例 ABAC 策略
<a name="example-table-buckets-abac-policies"></a>

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

**注意**  
如果您使用 Lake Formation 来管理对 Amazon S3 表类数据存储服务的访问，并且您拥有基于 IAM 或 S3 表类数据存储服务资源的策略（根据主体标签限制 IAM 用户和 IAM 角色），则必须将相同的主体标签附加到 Lake Formation 用来访问 Amazon S3 数据的 IAM 角色（例如，LakeFormationDataAccessRole），并为该角色授予必要的权限。这是基于标签的访问控制策略与 S3 表类数据存储服务分析集成正常协同工作所必需的。

##### 1.1：用于通过标签限制对表存储桶内表的操作的表存储桶策略
<a name="example-policy-table-bucket-resource-tag"></a>

在此表存储桶策略中，指定的 IAM 主体（用户和角色）仅在表的 `project` 标签的值与主体的 `project` 标签的值匹配时，才能对表存储桶中的任何表执行 `GetTable` 操作。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowGetTable",
      "Effect": "Allow",
      "Principal": {
        "AWS": "111122223333"
      },
      "Action": "s3tables:GetTable",
      "Resource": "arn:aws::s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/project": "${aws:PrincipalTag/project}"
        }
      }
    }
  ]
}
```

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

**注意**  
如果您使用 AWS Lake Formation 管理对 Amazon S3 表的访问，并且将 ABAC 与 Amazon S3 表类数据存储服务结合使用，请确保您还为 Lake Formation 代入的 IAM 角色授予所需的访问权限。有关为 Lake Formation 设置 IAM 角色的更多信息，请参阅《AWS Lake Formation 开发人员指南》**中的[将 Amazon S3 表目录与 Data Catalog 和 Lake Formation 集成的先决条件](https://docs.aws.amazon.com/lake-formation/latest/dg/s3tables-catalog-prerequisites.html)。

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

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

##### 1.3：用于控制对现有资源上的标签的修改以保持标签治理的 IAM 策略
<a name="example-policy-table-bucket-tag-keys"></a>

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

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

##### 1.4：使用 s3tables:TableBucketTag 条件键
<a name="example-policy-table-bucket-tag"></a>

在此 IAM 策略中，条件语句仅在表存储桶具有标签键 `Environment` 和标签值 `Production` 时，才支持访问表存储桶的数据。`s3tables:TableBucketTag/<tag-key>` 与 `aws:ResourceTag/<tag-key>` 条件键不同，因为除了根据标签控制对表存储桶的访问外，它还支持根据父表存储桶上的标签控制对表的访问。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessToSpecificTables",
      "Effect": "Allow",
      "Action": "*",
      "Resource": "arn:aws::s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket/*",
      "Condition": {
        "StringEquals": {
          "s3tables:TableBucketTag/Environment": "Production"
        }
      }
    }
  ]
}
```

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

您可以使用 Amazon S3 控制台、AWS 命令行界面（CLI）、AWS SDK 或以下 S3 API 为 S3 表存储桶添加或管理标签：[TagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_TagResource.html)、[UntagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_UntagResource.html) 和 [ListTagsForResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_ListTagsForResource.html)。有关更多信息，请参阅下列内容：

**Topics**
+ [将标签与表存储桶结合使用的常用方法](#common-ways-to-use-tags-table-bucket)
+ [管理表存储桶的标签](#table-bucket-working-with-tags)
+ [创建带有标签的表存储桶](table-bucket-create-tag.md)
+ [向表存储桶添加标签](table-bucket-tag-add.md)
+ [查看表存储桶标签](table-bucket-tag-view.md)
+ [从表存储桶删除标签](table-bucket-tag-delete.md)

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

您可以在创建 Amazon S3 表存储桶时为其添加标签。在表存储桶上使用标签时，除了标准 S3 API 请求费率之外，没有任何其他费用。有关更多信息，请参阅 [Amazon S3 定价](https://docs.aws.amazon.com/s3/pricing/)。有关为表存储桶添加标签的更多信息，请参阅[将标签与 S3 表存储桶结合使用](table-bucket-tagging.md)。

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

要创建带有标签的表存储桶，您必须具有以下权限：
+ `s3tables:CreateTableBucket`
+ `s3tables:TagResource`

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

如果您在尝试创建带有标签的表存储桶时遇到错误，可以执行以下操作：
+ 验证您是否具有创建表存储桶并向其应用标签所需的[权限](#table-bucket-create-tag-permissions)。
+ 检查 IAM 用户策略，了解是否存在任何基于属性的访问权限控制（ABAC）条件。您的策略可能要求您仅使用特定的标签键和值为表存储桶添加标签。有关 ABAC 和示例表存储桶 ABAC 策略的更多信息，请参阅[适用于 S3 表存储桶的 ABAC](https://docs.aws.amazon.com/AmazonS3/latest/userguide/table-bucket-tagging.html#abac-for-table-buckets)。

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

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

## 使用 S3 控制台
<a name="table-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. 输入表存储桶的名称。有关更多信息，请参阅 [Amazon S3 表存储桶、表和命名空间命名规则](s3-tables-buckets-naming.md)。

1. 在**创建表存储桶**页面上，有一个**标签**部分。

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

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

1. 为新的表存储桶指定其余选项。有关更多信息，请参阅 [创建表存储桶](s3-tables-buckets-create.md)。

1. 选择**创建表存储桶**。

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

有关 Amazon S3 表类数据存储服务 REST API 支持创建带有标签的表存储桶的相关信息，请参阅《Amazon Simple Storage Service API 参考》**中的以下部分：
+ [CreateTableBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_CreateTableBucket.html)

## 使用 AWS CLI
<a name="table-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 创建带有标签的表存储桶。要使用该命令，请将*用户输入占位符* 替换为您自己的信息。

创建表存储桶时，必须提供配置详细信息。有关更多信息，请参阅 [创建表存储桶](s3-tables-buckets-create.md)。您还必须使用符合表存储桶命名约定的名称来命名表存储桶。有关更多信息，请参阅 [Amazon S3 表存储桶、表和命名空间命名规则](s3-tables-buckets-naming.md)。

**请求**

```
aws --region us-west-2 \
s3tables create-table-bucket \
--tags '{"Department":"Engineering"}' \
--name amzn-s3-demo-table-bucket
```

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



您可以向 Amazon S3 表存储桶添加标签并修改这些标签。有关为表存储桶添加标签的更多信息，请参阅[将标签与 S3 表存储桶结合使用](table-bucket-tagging.md)。

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

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

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

如果您在尝试向表存储桶添加标签时遇到错误，可以执行以下操作：
+ 验证您是否具有向表存储桶添加标签所需的[权限](#table-bucket-tag-add-permissions)。
+ 如果您尝试添加以 AWS 保留前缀 `aws:` 开头的标签键，请更改标签键并重试。
+ 标签键是必需的。此外，请确保标签键和标签值不超过最大字符长度，并且不包含受限字符。有关更多信息，请参阅 [添加标签以进行成本分配或基于属性的访问权限控制（ABAC）](tagging.md)。

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

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

## 使用 S3 控制台
<a name="table-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. 添加标签后，选择**保存更改**。

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

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

## 使用 AWS CLI
<a name="table-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 --region us-west-2 \
s3tables tag-resource \
--resource-arn arn:aws::s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket \
--tags '{"Department":"Engineering"}'
```

# 查看表存储桶标签
<a name="table-bucket-tag-view"></a>

您可以查看或列出应用于 Amazon S3 表存储桶的标签。有关为表存储桶添加标签的更多信息，请参阅[将标签与 S3 表存储桶结合使用](table-bucket-tagging.md)。

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

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

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

如果您在尝试列出或查看表存储桶的标签时遇到错误，可以执行以下操作：
+ 验证您是否具有查看表存储桶的标签所需的[权限](#table-bucket-tag-view-permissions)。

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

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

## 使用 S3 控制台
<a name="table-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 服务应用到表存储桶的标签。

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

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

## 使用 AWS CLI
<a name="table-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 --region us-west-2 \
s3tables list-tags-for-resource \
--resource-arn arn:aws::s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket/table/example_table
```

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

```
{
    "tags": {
        "project": "Trinity",
        "code": "123456"
    }
}
```

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

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

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

您可以从 Amazon S3 表存储桶删除标签。有关为表存储桶添加标签的更多信息，请参阅[将标签与 S3 表存储桶结合使用](table-bucket-tagging.md)。

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

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

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

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

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

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

您可以使用 Amazon S3 控制台、AWS Command Line Interface（AWS CLI）、Amazon S3 表类数据存储服务 REST API 和 AWS SDK 从表存储桶删除标签。

## 使用 S3 控制台
<a name="table-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. 选择 **Delete (删除)** 以确认。

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

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

## 使用 AWS CLI
<a name="table-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 --region us-west-2 \
s3tables untag-resource \
--resource-arn arn:aws::s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket \
--tags-keys '["Department"]'
```