本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用您自己的 Amazon S3 存储桶
默认情况下,T AWS ransform 使用服务管理的 Amazon S3 存储桶来存储转换项目。您可以选择改用自己的 Amazon S3 存储桶来更好地控制数据存储、加密和访问策略。
注意
如果您有用于大型机转换的 Amazon S3 存储桶,则可以继续使用该 S3 连接器,无需使用此功能。
注意
您的 Amazon S3 存储桶仅存储您与之交互的上传和转换项目。系统生成的内部对象不存储在您的存储桶中。此外,T AWS ransform 还会为存储桶中的工件编制索引。它将索引数据存储在服务管理的知识库中,用于为您提供丰富的聊天体验。
先决条件
在配置自己的 Amazon S3 存储桶之前,请确保满足以下要求:
-
存储桶必须位于启用 AWS 转换的同一 AWS 区域。
-
所需的存储桶策略必须应用于您的存储桶。有关更多信息,请参阅 必填存储桶政策。
-
如果您使用 T AWS ransform Web 应用程序,则必须在您的存储桶上配置 CORS。有关更多信息,请参阅 所需的 CORS 配置。
-
如果您使用自定义 AWS KMS 密钥,则必须应用所需的密钥策略。有关更多信息,请参阅 KMS 密钥策略(可选)。
支持的加密配置
您的存储桶必须使用以下加密配置之一:
-
SSE-S3 (AES256) — 将 KMS 密钥字段留空。 AWS Transform 在不指定加密标头的情况下写入对象,Amazon S3 使用 S3-managed 密钥应用存储桶的默认加密。有关更多信息,请参阅 Amazon S3 用户指南中的使用服务器端加密和 Ama zon S3 托管密钥 (SSE-S3)。
-
SSE-KMS 使用客户管理的 KMS 密钥 — 提供 KMS 密钥 ARN。 AWS Transform
x-amz-server-side-encryption: aws:kms使用提供的密钥写入对象。按照KMS 密钥策略(可选)中的说明操作。
不支持以下语句:
-
SSE-KMS 使用 AWS-managed KMS 密钥(例如,
aws/s3) -
SSE-C
-
DSSE-KMS
-
非对称 KMS 密钥或密钥规格不是 SYMMETRIC_DEFAULT 的 KMS 密钥
警告
AWS不支持托管的 KMS 密钥。如果您的存储桶使用加密aws/s3,请迁移到客户管理的密钥,或者 SSE-S3 在将存储桶与 T AWS ransform 一起使用之前。
配置您的 Amazon S3 存储桶
您可以从 T AWS ransform 控制台将 T AWS ransform 配置为使用自己的 Amazon S3 存储桶。
使用自己的 Amazon S3 存储桶
-
在 “ AWS 转换” 控制台中,选择 “设置” 。
-
在 Artifact 存储下,选择 “使用我自己的 S3 存储桶” 。您可以使用当前账户 AWS 账户 或其他账户中的存储桶。
-
对于存储桶,输入 Amazon S3 URI。
-
(可选)对于 KMS 密钥,输入 AWS KMS 密钥 ARN 以加密存储桶中的对象。如果您将此字段留空,T AWS ransform 会写入不带加密标头的对象,并且 Amazon S3 将应用存储桶的默认加密设置。有关更多信息,请参阅《Amazon S3 用户指南》中的为 Amazon S3 存储桶设置默认服务器端加密行为。
如果您的存储桶的默认加密为 SSE-KMS,请在此字段中输入客户管理的 KMS 密钥 ARN 并更新您的密钥策略。有关更多信息,请参阅 KMS 密钥策略(可选)。
-
选择 “保存” 。 AWS Transform 会在应用配置之前验证存储桶配置和权限。
保存配置后,T AWS ransform 使用您的存储桶存储转换对象。
注意
AWS 只有在您保存时,Transform 才会验证您的配置。如果您以后更改存储桶策略、CORS 配置或 KMS 密钥策略,请重新保存您的配置文件设置以重新验证。
必填存储桶政策
您必须配置存储桶策略以授予 T AWS ransform 访问权限。将以下存储桶策略添加到您的 Amazon S3 存储桶,以允许 T AWS ransform 服务主体读取、写入、删除和列出转换项目。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "transform.amazonaws.com" ] }, "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts", "s3:PutObjectTagging" ], "Resource": "arn:aws:s3:::bucket-name/AWSTransform/*", "Condition": { "StringEquals": { "aws:SourceAccount": "profile-account-id", "aws:SourceArn": "profile-arn" } } }, { "Effect": "Allow", "Principal": { "Service": [ "transform.amazonaws.com" ] }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::bucket-name", "Condition": { "StringEquals": { "aws:SourceAccount": "profile-account-id", "aws:SourceArn": "profile-arn" } } } ] }
替换以下值:
-
bucket-name— 您的亚马逊 S3 存储桶的名称。 -
profile-account-id— 与您的 T AWS ransform 个人资料关联的 AWS 账户 ID。 -
profile-arn— 您的 T AWS ransform 个人资料的 ARN。
所需的 CORS 配置
如果您使用 T AWS ransform Web 应用程序,则必须在 Amazon S3 存储桶上配置 Cross-Origin 资源共享 (CORS)。启用 “ AWS 转换” 后,您可以找到 Web 应用程序域。有关更多信息,请参阅 开始使用 AWS 转换。
[ { "AllowedHeaders": [ "host", "content-type", "if-none-match", "x-amz-checksum-sha256", "x-amz-expected-bucket-owner", "x-amz-server-side-encryption", "x-amz-server-side-encryption-aws-kms-key-id", "x-amz-server-side-encryption-context", "x-amz-source-account", "x-amz-source-arn" ], "AllowedMethods": [ "GET", "PUT", "HEAD" ], "AllowedOrigins": [ "webapp-domain" ], "ExposeHeaders": [ "ETag", "x-amz-checksum-sha256", "x-amz-request-id", "x-amz-id-2" ], "MaxAgeSeconds": 3600 } ]
替换以下值:
-
webapp-domain— 您的 Web 应用程序来源 URL(例如https://1a2b3c4d5e6f7a8b9.transform.us-east-1.on.aws),可在 AWS 转换设置页面上找到。不要包括结尾的斜杠。
KMS 密钥策略(可选)
本部分仅在使用客户管理的 KMS 密钥加密您的存储桶时适用。如果您的存储桶使用 SSE-S3,请跳过此部分。
如果您为存储桶加密指定自己的 AWS KMS 密钥,请在密钥策略中添加以下语句。 AWS Transform 依靠前向访问会话 (FAS) 为其服务主体创建补助金。这些授权用于验证您的密钥和访问您的 Amazon S3 存储桶中的项目。
{ "Sid": "AllowAWSTransformServiceAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::key-owner-account-id:root" }, "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "transform.region.amazonaws.com" } } }
替换以下值:
-
key-owner-account-id— 拥有 KMS 密钥的 AWS 账户 ID。 -
region— 启用 AWS 转换的 AWS 区域(例如,us-east-1)。
切换回默认存储桶
您可以随时切换回服务管理的存储桶。
切换到 AWS 转变托管存储
-
在 “ AWS 转换” 控制台中,选择 “设置” 。
-
在 “对象存储” 下,选择 “编辑” 。
-
选择 “AWS 转换托管存储” 。
-
选择保存。
警告
如果您在转换任务进行时切换存储配置,这些任务将失败。这些正在进行的任务已经生成的任何工件也将无法访问。
重要
当您切换回服务管理的存储桶时:
-
存储桶中的构件不会自动迁移。要保留任何项目,请将其从您的 Amazon S3 存储桶中下载,然后通过 T AWS ransform Web 应用程序将其重新上传到相应工作空间和任务的工件存储区。
-
AWS Transform 将取消对您的 KMS 密钥的授权。写入存储桶的对象仍保留在您的存储桶中;如果不再需要它们,请手动将其删除。
将文件直接上传到您的存储桶
您可以直接将文件上传到您的 Amazon S3 存储桶,而无需使用 T AWS ransform Web 应用程序。要将上传的文件提供给转换代理,请将它们上传到作业User Uploads文件夹。此文件夹的目录路径使用以下格式:
AWSTransform/Workspaces/workspace-id/Jobs/job-id/User Uploads/
替换以下值:
-
workspace-id— 您的 T AWS ransform 工作空间的 ID。 -
job-id— 转换任务的 ID。
T AWS ransform 中的每个作业都有自己的User Uploads文件夹。您上传到此路径的文件会显示在 Web 应用程序中,可供转换代理在完成作业时使用。
文件路径不得包含..、//、前导或尾随空格——违反这些限制的文件对代理不可见。
删除存储桶内容可能会导致任务失败
删除job_objective将导致活动作业或会话恢复的作业失败。对于所有其他文件,删除它们可能会导致意外的代理行为或作业失败。
重要
如果您的存储桶使用 SSE-KMS,请在每次直接上传时添加以下标头:
x-amz-server-side-encryption: aws:kms x-amz-server-side-encryption-aws-kms-key-id:your-kms-key-arn
必须使用在 T AWS ransform 配置文件中注册的 KMS 密钥对对象进行加密。T AWS ransform 无法访问使用任何其他密钥加密的对象。
兼容性矩阵
下表汇总了 T AWS ransform 与常见 Amazon S3 存储桶功能的兼容性。
| 功能 | 兼容性 | 注意 |
|---|---|---|
Bucket versioning |
支持 |
使用生命周期规则管理非当前版本。 |
对象所有权 |
必需:强制执行存储桶所有者 |
首选存储桶所有者,不支持对象写入器。 |
ACL |
不支持 |
必须在存储桶上禁用 ACL。 |
对象锁(管理模式) |
部分支持 |
保留设置可能会阻止删除。 |
对象锁定(合规模式) |
不支持 |
— |
屏蔽公共访问权限 |
支持 |
— |
申请方付款 |
不支持 |
— |
S3 接入点 |
不支持 |
使用存储桶名称。 |
S3 对象 Lambda 接入点 |
不支持 |
使用存储桶名称。 |
S3 on Outposts |
不支持 |
— |
S3 Express One Zone(目录存储桶) |
不支持 |
— |
Cross-Region 桶 |
不支持 |
— |
Cross-account 桶 |
支持 |
— |
Cross-account KMS 密钥 |
不支持 |
— |
生命周期规则 |
支持 |
— |
CloudTrail 数据事件 |
支持 |
— |