向 Amazon Personalize 授予访问 Amazon S3 资源的权限 - Amazon Personalize
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

向 Amazon Personalize 授予访问 Amazon S3 资源的权限

要向 Amazon Personalize 授予访问 Amazon S3 存储桶的权限,请执行以下操作:

  1. 如果您还没有设置,请按照设置权限中的步骤设置权限,以便 Amazon Personalize 代表您访问您在 Amazon Personalize 中的资源。

  2. 向 Amazon Personalize 服务角色(参见为 Amazon Personalize 创建 IAM 角色)附加允许访问 Amazon S3 存储桶的策略。有关更多信息,请参阅 将 Amazon S3 策略附加到您的 Amazon Personalize 服务角色中

  3. 将存储桶策略附加到包含数据文件的 Amazon S3 存储桶,以便 Amazon Personalize 访问这些文件。有关更多信息,请参阅 将 Amazon Personalize 访问策略附加到您的 Amazon S3 存储桶中

  4. 如果您使用 Amazon Key Management Service (Amazon KMS) 进行加密,则必须向 Amazon Personalize 和 Amazon Personalize IAM 服务角色授予使用您的密钥的权限。有关更多信息,请参阅 向 Amazon Personalize 授予使用您 Amazon KMS 密钥的权限

注意

由于 Amazon Personalize 不与 Amazon VPC 通信,因此 Amazon Personalize 无法与仅允许 VPC 访问的 Amazon S3 存储桶进行交互。

将 Amazon S3 策略附加到您的 Amazon Personalize 服务角色中

要将 Amazon S3 策略附加到您的 Amazon Personalize 角色中,请执行以下操作:

  1. 登录 IAM 控制台 (https://console.aws.amazon.com/iam/)。

  2. 在导航窗格中选择 Policies (策略),然后选择 Create policy (创建策略)

  3. 选择“JSON”选项卡,然后更新策略,如下所示。将 bucket-name 替换为您的存储桶的名称。您可以对数据集导入任务或数据删除任务使用以下策略。如果您正在使用批处理工作流程或创建数据集导出任务,Amazon Personalize 需要额外的权限。请参阅 批量工作流程的服务角色策略用于导出数据集的 Amazon S3 存储桶策略

    { "Version": "2012-10-17", "Id": "PersonalizeS3BucketAccessPolicy", "Statement": [ { "Sid": "PersonalizeS3BucketAccessPolicy", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }
  4. 选择下一步:标签。(可选)添加任何标签并选择查看

  5. 为策略命名。

  6. (可选)对于描述,输入描述此策略的简短句子,例如,Allow Amazon Personalize to access its Amazon S3 bucket.

  7. 选择 创建策略

  8. 在导航窗格中,选择角色,然后选择您为 Amazon Personalize 创建的角色。请参阅 为 Amazon Personalize 创建 IAM 角色

  9. 对于权限,选择附加策略

  10. 要显示列表中的策略,请在 Filter policies (筛选策略) 筛选框中键入部分策略名称。

  11. 选中在该过程前面创建的策略旁边的复选框。

  12. 选择附加策略

    在您的角色准备好用于 Amazon Personalize 之前,您还必须将存储桶策略附加到包含您的数据的 Amazon S3 存储桶。请参阅 将 Amazon Personalize 访问策略附加到您的 Amazon S3 存储桶中

批量工作流程的服务角色策略

要完成批量工作流程,Amazon Personalize 需要权限来访问文件并将其添加到 Amazon S3 存储桶。按照上述步骤将以下策略附加到您的 Amazon Personalize 角色中。将 bucket-name 替换为您的存储桶的名称。有关批量工作流程的更多信息,请参阅批量建议和用户细分(自定义资源)

{ "Version": "2012-10-17", "Id": "PersonalizeS3BucketAccessPolicy", "Statement": [ { "Sid": "PersonalizeS3BucketAccessPolicy", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }

用于导出数据集的服务角色策略

要导出数据集,您的 Amazon Personalize 服务角色需要权限来针对 Amazon S3 存储桶使用 PutObjectListBucket 操作。以下示例策略向 Amazon Personalize 授予 PutObjectListBucket 权限。将 bucket-name 替换为存储桶的名称,并将该策略附加到您的 Amazon Personalize 服务角色中。有关将策略附加到服务角色的信息,请参阅将 Amazon S3 策略附加到您的 Amazon Personalize 服务角色中

{ "Version": "2012-10-17", "Id": "PersonalizeS3BucketAccessPolicy", "Statement": [ { "Sid": "PersonalizeS3BucketAccessPolicy", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }

将 Amazon Personalize 访问策略附加到您的 Amazon S3 存储桶中

Amazon Personalize 需要权限才能访问 S3 存储桶。您可以对数据集导入任务或数据删除任务使用以下策略。将 bucket-name 替换为您的存储桶的名称。有关批量工作流程,请参阅针对批量工作流程的 Amazon S3 存储桶策略

有关 Amazon S3 存储桶策略的更多信息,请参阅如何添加 S3 存储桶策略?

{ "Version": "2012-10-17", "Id": "PersonalizeS3BucketAccessPolicy", "Statement": [ { "Sid": "PersonalizeS3BucketAccessPolicy", "Effect": "Allow", "Principal": { "Service": "personalize.amazonaws.com" }, "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }

针对批量工作流程的 Amazon S3 存储桶策略

对于批量工作流程,Amazon Personalize 需要权限来访问文件并将其添加到 Amazon S3 存储桶。将以下策略附加到您的存储桶:将 bucket-name 替换为您的存储桶的名称。

有关将 Amazon S3 存储桶策略添加到存储桶的更多信息,请参阅如何添加 S3 存储桶策略? 有关批量工作流程的更多信息,请参阅批量建议和用户细分(自定义资源)

{ "Version": "2012-10-17", "Id": "PersonalizeS3BucketAccessPolicy", "Statement": [ { "Sid": "PersonalizeS3BucketAccessPolicy", "Effect": "Allow", "Principal": { "Service": "personalize.amazonaws.com" }, "Action": [ "s3:GetObject", "s3:ListBucket", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }

用于导出数据集的 Amazon S3 存储桶策略

要导出数据集,Amazon Personalize 需要权限来针对 Amazon S3 存储桶使用 PutObjectListBucket 操作。以下示例策略向 Amazon Personalize 主体授予 PutObjectListBucket 权限。将 bucket-name 替换为您的存储桶名称,并将策略附加到存储桶。有关将 Amazon S3 存储桶策略添加到存储桶的信息,请参阅《Amazon Simple Storage Service 用户指南》中的如何添加 S3 存储桶策略?

{ "Version": "2012-10-17", "Id": "PersonalizeS3BucketAccessPolicy", "Statement": [ { "Sid": "PersonalizeS3BucketAccessPolicy", "Effect": "Allow", "Principal": { "Service": "personalize.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }