启用或禁用注释表
默认情况下,元数据表配置包含一个日记表,该表记录存储桶中的对象发生的事件。每个元数据表配置都需要日记表。
或者,可以将注释表添加到元数据表配置中。注释表会跟踪存储桶中对象的所有注释,以便您可以大规模查询注释数据。
注释表包含存储桶中所有对象的最新注释。可以使用此表,通过根据对象的注释来识别对象,从而简化和加快业务工作流程和大数据作业。例如,可以查询注释表来执行以下操作:
-
查找具有特定注释键或值的所有对象。
-
在存储桶中的对象之间创建注释键的分布。
-
查找具有由特定主体应用的注释的所有对象。
如果您选择为元数据表配置启用注释表,则该表将经历一个称为回填的过程,在此过程中,Amazon S3 扫描通用存储桶,以检索和填充存储桶中存在的所有对象的注释。根据存储桶中的对象数量,此过程可能需要若干分钟到几小时。完成回填过程后,注释表的状态将从正在回填更改为活跃。完成回填后,对于对象的更新通常会在一小时内反映在注释表中。
注意
-
您需要为回填注释表付费。有关更多信息,请参阅 Amazon S3 定价
。 -
无法暂停对注释表的更新,然后继续更新。但是,可以禁用注释表配置。禁用注释表不会将其删除。将为记录保留注释表,直到您决定将其删除。
如果已禁用注释表,之后想重新启用它,则必须先从 AWS 托管式表存储桶中删除旧的注释表。当重新启用注释表配置时,Amazon S3 会创建一个新的注释表,并且您需要再次支付回填新注释表的费用。
可以使用 Amazon S3 控制台、AWS Command Line Interface(AWS CLI)、AWS SDK 或 Amazon S3 REST API 来启用或禁用注释表。
先决条件
如果已禁用注释表,现在想重新启用它,则必须先从 AWS 托管式表存储桶中手动删除旧的注释表。否则,由于表存储桶中已存在注释表,因此重新启用注释表将失败。要删除注释表,请参阅删除元数据表。
当重新启用注释表配置时,Amazon S3 会创建一个新的注释表,并且您需要再次支付回填新注释表的费用。
注释表 IAM 角色
注释表需要一个 IAM 角色,该角色授予 Amazon S3 元数据从您的存储桶中读取注释的权限。创建此角色时,请使用以下信任和权限策略。
信任策略
以下信任策略将 Amazon S3 元数据标识为可以代入该角色的服务主体。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "metadata.s3.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:s3:::amzn-s3-demo-bucket" } } } ] }
权限策略
以下权限策略向 IAM 角色授予读取注释所需的最低权限。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PermissionForGetAnnotation", "Effect": "Allow", "Action": [ "s3:GetObjectAnnotation", "s3:GetObjectVersionAnnotation" ], "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/*"] }, { "Sid": "PermissionsForListBucket", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:ListBucketVersions" ], "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"] }, { "Sid": "PermissionsForDecryptAnnotation", "Effect": "Allow", "Action": ["kms:Decrypt"], "Resource": ["*"] } ] }
如果您的对象使用 SSE-KMS 加密,则 kms:Decrypt 权限涵盖用于加密对象的 AWS KMS 密钥的解密。您还需要 iam:PassRole 权限才能将角色分配给注释表配置。
启用或禁用注释表
启用或禁用注释表
登录到 AWS 管理控制台,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
在左侧导航窗格中,选择通用存储桶。
-
选择通用存储桶,该存储桶具有要为其启用或禁用注释表的元数据表配置。
-
在存储桶的详细信息页面上,选择元数据选项卡。
-
在元数据选项卡上,选择编辑,然后选择编辑注释表配置。
-
在编辑注释表配置页面上,在注释表下方选择已启用或已禁用。
注意
在选择已启用之前,请确保您已查看并符合先决条件。
-
如果您选择了已启用,请在 IAM 角色下选择以下 IAM 角色选择方法之一:
-
创建新的 IAM 角色:Amazon S3 将创建一个新的 IAM 角色,该角色具有注释表所需的权限。
-
从现有 IAM 角色中选择:从 IAM 角色下拉列表中选择一个现有 IAM 角色。该角色必须具有所需的权限,才能读取存储桶中的注释。
-
输入 IAM 角色 ARN:输入具有所需权限的现有 IAM 角色的 ARN。
有关注释表 IAM 角色所需权限的更多信息,请参阅注释表 IAM 角色。
还可以选择是否通过使用 AWS Key Management Service(AWS KMS)密钥的服务器端加密(SSE-KMS)来对表进行加密。默认情况下,注释表通过使用 Amazon S3 托管式密钥的服务器端加密(SSE-S3)来进行加密。
如果您选择使用 SSE-KMS,则必须提供与通用存储桶位于同一区域的客户自主管理型 KMS 密钥。
重要
只能在创建表的过程中为元数据表设置加密类型。创建 AWS 托管式表后,无法更改其加密设置。
-
要使用 SSE-S3(默认)加密注释表,请选择不指定加密类型。
-
要使用 SSE-KMS 加密注释表,请选择指定加密类型。在加密类型下,选择使用 AWS Key Management Service(AWS KMS)密钥的服务器端加密(SSE-KMS)。在 AWS KMS 密钥下,从现有 KMS 密钥中进行选择,或者输入 KMS 密钥 ARN。如果您还没有 KMS 密钥,请选择输入 KMS 密钥 ARN,然后选择创建 KMS 密钥。
-
-
如果选择了已禁用,则在禁用注释表后,该表将不再更新,也无法继续更新下,选中该复选框。
-
-
选择保存更改。
要运行以下命令,您必须安装并配置 AWS CLI。如果未安装 AWS CLI,请参阅《AWS Command Line Interface 用户指南》中的安装或更新最新版本的 AWS CLI。
或者,可以从控制台中使用 AWS CloudShell 运行 AWS CLI 命令。AWS CloudShell 是一个基于浏览器、预先经过身份验证的 Shell,您可以直接从 AWS 管理控制台中启动它。有关更多信息,请参阅《AWS CloudShell 用户指南》中的 What is CloudShell? 和 Getting started with AWS CloudShell。
使用 AWS CLI 启用或禁用注释表
要使用以下示例命令,请将 替换为您自己的信息。user input
placeholders
注意
在启用注释配置之前,请确保您已查看并符合先决条件。
-
创建包含注释表配置的 JSON 文件并将其保存(例如
annotation-config.json)。以下是一个用于启用新注释表的示例配置。如果要启用注释表,则可以选择指定加密配置。默认情况下,元数据表通过使用 Amazon S3 托管式密钥的服务器端加密(SSE-S3)进行加密,可以通过将
SseAlgorithm设置为AES256来指定此加密方式。要通过使用 AWS Key Management Service(AWS KMS)密钥的服务器端加密(SSE-KMS)来加密注释表,请将
SseAlgorithm设置为aws:kms。还必须将KmsKeyArn设置为通用存储桶所在区域中客户自主管理型 KMS 密钥的 ARN。{ "ConfigurationState": "ENABLED", "Role": "arn:aws:iam::account-id:role/annotation-table-role", "EncryptionConfiguration": { "SseAlgorithm": "aws:kms", "KmsKeyArn": "arn:aws:kms:us-east-2:account-id:key/key-id" } }首次启用注释表或更改 IAM 角色时,
Role字段为必填字段。该角色必须向 Amazon S3 元数据授予从您的存储桶中读取注释的权限。有关更多信息,请参阅注释表 IAM 角色。如果要禁用现有注释表,请使用以下配置:
{ "ConfigurationState": "DISABLED" } -
使用以下命令更新通用存储桶(例如
)的注释表配置:amzn-s3-demo-bucketaws s3api update-bucket-metadata-annotation-table-configuration \ --bucketamzn-s3-demo-bucket\ --annotation-table-configuration file://./annotation-config.json \ --regionus-east-2
可以发送 REST 请求来启用或禁用注释表。有关更多信息,请参阅 UpdateBucketMetadataAnnotationTableConfiguration。
在 Amazon S3 中可以使用 AWS SDK 来启用或禁用注释表。有关信息,请参阅 list of supported SDKs。