向 Amazon 提供对 Amazon S3 资源的个性化访问权限 - Amazon Personalize
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

向 Amazon 提供对 Amazon S3 资源的个性化访问权限

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

  1. 如果您尚未操作,请按照设置权限设置权限,以便您的 IAM 用户可以访问 Amazon Personalize,Amazon Personalize 可以访问您的资源。

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

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

  4. 如果您正在使用Amazon Key Management Service(AmazonKMS)进行加密,您必须向您的 IAM 用户和 Amazon Personalize IAM 服务链接角色授予使用您的密钥的权限。您还必须将 Amazon Personalize 作为原则添加到您的Amazon KMS密钥策略。有关更多信息,请参阅 。使用 中的密钥策略AmazonKMS中的Amazon Key Management Service开发人员指南

注意

因为 Amazon Personalize 无法与AmazonVPC、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 需要额外的权限。请参阅 批处理工作流的服务相关角色策略

    { "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. 对于名称,输入 PersonalizeS3BucketAccessPolicy

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

  7. 选择 Create policy

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

  9. 适用于Permissions (权限)中,选择附加策略

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

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

  12. 选择附加策略

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

批处理工作流的服务相关角色策略

若要完成批处理工作,Amazon Personalize Simple Simple 需要具有权限才能访问 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 存储桶添加文件的权限。以下是授予您的 Amazon Personalize 服务关联角色的策略示例PutObject权限。将 bucket-name 替换为您的存储桶的名称。有关将策略附加到与服务关联的 IAM 角色的信息,请参阅将 Amazon S3 策略附加到 Amazon Personalize 服务角色

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

将 Amazon Simple 访问策略附加到 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 存储桶并将文件添加到 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 存储桶添加文件的权限。下面是一个示例策略,该策略授予 Amazon 个性化使用 Amazon 个性化权限。PutObjectAmazon S3 存储桶上的操作。将 bucket-name 替换为您的存储桶的名称。有关将 Amazon S3 存储桶策略添加到存储桶的信息,请参阅如何添加 S3 存储桶策略?(Amazon Simple Storage Service 控制台用户指南)。

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