View a markdown version of this page

使用您自己的亚马逊 S3 存储桶 - AWS 转换

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用您自己的亚马逊 S3 存储桶

默认情况下,Transf AWS orm 使用服务托管的 Amazon S3 存储桶来存储转换项目。您可以选择改用自己的 Amazon S3 存储桶,以便更好地控制数据存储、加密和访问策略。

注意

如果您有用于大型机转换的 Amazon S3 存储桶,则可以继续使用该 S3 连接器,而无需使用此功能。

注意

您的 Amazon S3 存储桶仅存储您与之交互的上传和转换项目。系统生成的内部项目不会存储在您的存储桶中。此外,T AWS ransform 还会对存储桶中的项目进行索引。它将索引数据存储在服务管理的知识库中,用于为您提供丰富的聊天体验。

先决条件

在配置自己的 Amazon S3 存储桶之前,请确保满足以下要求:

  • 存储桶必须位于启用 AWS 转换的同一 AWS 区域。

  • 必须将所需的存储桶策略应用于您的存储桶。有关更多信息,请参阅 必需的存储桶策略

  • 如果您使用 AWS 转换 Web 应用程序,则必须在存储桶上配置 CORS。有关更多信息,请参阅 必需的 CORS 配置

  • 如果您使用自定义 AWS KMS 密钥,则必须应用所需的密钥策略。有关更多信息,请参阅 KMS 密钥策略(可选)

支持的加密配置

您的存储桶必须使用以下加密配置之一:

  • SSE-S3 (AES256)-将 KMS 密钥字段留空。 AWS Transform 在不指定加密标头的情况下写入对象,而 Amazon S3 会使用 S3-managed 密钥应用存储桶的默认加密。有关更多信息,请参阅 Amazon S3 用户指南中的对 Amazon S3 托管密钥使用服务器端加密 (SSE-S3)

  • SSE-KMS 使用客户管理的 KMS 密钥 — 提供 KMS 密钥 ARN。 AWS Transform x-amz-server-side-encryption: aws:kms 使用提供的密钥写入对象。按照KMS 密钥策略(可选)中的说明操作。

不支持以下语句:

  • SSE-KMS 使用 AWS托管的 KMS 密钥(例如,aws/s3

  • SSE-C

  • DSSE-KMS

  • 非对称 KMS 密钥或密钥规格不是 SYMMETRIC_DEFAULT 的 KMS 密钥

警告

AWS不支持托管的 KMS 密钥。如果您的存储桶使用加密,请迁移到客户管理的密钥aws/s3,或者 SSE-S3 在使用带有 Tr AWS ansform 的存储桶之前迁移到客户管理的密钥。

配置您的亚马逊 S3 存储桶

您可以通过 AWS AWS 转换控制台将 Transform 配置为使用自己的 Amazon S3 存储桶。

使用您自己的 Amazon S3 存储桶
  1. 在 “ AWS 转换” 控制台中,选择 “设置”

  2. 在 A rtifact 存储空间下,选择使用我自己的 S3 存储桶。您可以在当前账户 AWS 账户 或其他账户中使用存储桶。

  3. 对于存储桶,请输入 Amazon S3 URI。

  4. (可选)对于 KMS 密钥,输入 AWS KMS 密钥 ARN 以加密存储桶中的对象。如果您将此字段留空,Trans AWS form 会写入不带加密标头的对象,Amazon S3 会应用存储桶的默认加密设置。有关更多信息,请参阅《Amazon S3 用户指南》中的为 Amazon S3 存储桶设置默认服务器端加密行为

    如果您的存储桶的默认加密为 SSE-KMS,请在此字段中输入客户管理的 KMS 密钥 ARN 并更新您的密钥策略。有关更多信息,请参阅 KMS 密钥策略(可选)

  5. 选择 “保存”。 AWS 在应用配置之前,Transform 会验证存储桶配置和权限。

保存配置后,T AWS ransform 会使用您的存储桶来存储转换工件。

注意

AWS 只有在您保存配置时,转换才会验证您的配置。如果您稍后更改了存储桶策略、CORS 配置或 KMS 密钥策略,请重新保存您的配置文件设置以重新验证。

必需的存储桶策略

您必须配置存储桶策略才能授予 Trans AWS form 访问权限。将以下存储桶策略添加到您的 Amazon S3 存储桶,以允许 Trans AWS form 服务主体读取、写入、删除和列出转换项目。

{ "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— 与您的 AWS 转换配置文件关联的 AWS 账户 ID。

  • profile-arn— 你的 Trans AWS form 个人资料的 ARN。

必需的 CORS 配置

如果您使用 Trans AWS form 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 转变托管存储
  1. 在 “ AWS 转换” 控制台中,选择 “设置”

  2. 在 A rtifact 存储空间下,选择编辑

  3. 选择 “AWS 转换托管存储”。

  4. 选择保存

警告

如果您在转换作业进行时切换存储配置,则这些作业会失败。这些正在进行的作业已经生成的任何构件也将无法访问。

重要

当您切换回服务托管存储桶时:

  • 存储桶中的项目不会自动迁移。要保留任何项目,请从您的 Amazon S3 存储桶下载它们,然后通过 Transfor AWS m Web 应用程序将其重新上传到相应工作空间和任务的工件存储区。

  • AWS 转换会停用对您的 KMS 密钥的授权。写入存储桶的对象仍保留在您的存储桶中;如果不再需要这些对象,请手动将其删除。

将文件直接上传到您的存储桶

您可以直接将文件上传到您的 Amazon S3 存储桶,而无需使用 Trans AWS form Web 应用程序。要使上传的文件可供转换代理使用,请将其上传到作业User Uploads的文件夹。此文件夹的目录路径使用以下格式:

AWSTransform/Workspaces/workspace-id/Jobs/job-id/User Uploads/

替换以下值:

  • workspace-id— 您的 “ AWS 转换” 工作区的 ID。

  • job-id— 转换任务的 ID。

Trans AWS form 中的每个作业都有自己的User Uploads文件夹。您上传到此路径的文件将显示在 Web 应用程序中,并在转换代理完成任务时可供他们使用。

文件路径不得包含..//、、前导或尾随空格 — 代理看不到违反这些限制的文件。

重要

如果您的存储桶使用 SSE-KMS,请在每次直接上传时都包含以下标头:

x-amz-server-side-encryption: aws:kms x-amz-server-side-encryption-aws-kms-key-id: your-kms-key-arn

必须使用在您的 Trans AWS form 配置文件中注册的 KMS 密钥对对象进行加密。Transform 无法访问使用任何其他密钥加密 AWS 的对象。

兼容性矩阵

下表汇总了 Trans AWS form 与常见 Amazon S3 存储桶功能的兼容性。

功能 兼容性 注意

Bucket versioning

支持

使用生命周期规则管理非当前版本。

对象所有权

必需:强制执行存储桶所有者

首选存储桶所有者,不支持对象写入器。

ACL

不支持

必须在存储桶上禁用 ACL。

对象锁定(治理模式)

部分支持

保留设置可能会阻止删除操作。

对象锁定(合规模式)

不支持

屏蔽公共访问权限

支持

申请方付款

不支持

S3 接入点

不支持

使用存储桶名称。

S3 对象 Lambda 接入点

不支持

使用存储桶名称。

S3 on Outposts

不支持

S3 Express One 区域(目录存储桶)

不支持

Cross-Region 水桶

不支持

Cross-account 水桶

支持

Cross-account KMS 密钥

不支持

生命周期规则

支持

CloudTrail 数据事件

支持