向 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 VPCs,因此 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”选项卡,然后更新策略,如下所示。将 amzn-s3-demo-bucket 替换为您的存储桶的名称。您可以对数据集导入作业或数据删除作业使用以下策略。如果您使用的是批量工作流程或正在创建数据集导出作业,则 Amazon Personalize 需要额外权限。请参阅批量工作流程的服务角色策略用于导出数据集的 Amazon S3 存储桶策略

    JSON
    { "Version": "2012-10-17", "Id": "PersonalizeS3BucketAccessPolicy", "Statement": [ { "Sid": "PersonalizeS3BucketAccessPolicy", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }
  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 角色中。将 amzn-s3-demo-bucket 替换为您的存储桶的名称。有关批量工作流程的更多信息,请参阅获取批量物品推荐获取批量用户细分

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

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

要导出数据集,您的 Amazon Personalize 服务角色需要权限来针对 Amazon S3 存储桶使用 PutObjectListBucket 操作。以下示例策略向 Amazon Personalize 授予 PutObjectListBucket 权限。将 amzn-s3-demo-bucket 替换为存储桶的名称,并将该策略附加到您的 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:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }

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

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

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

JSON
{ "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:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }

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

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

有关将 Amazon S3 存储桶策略添加到存储桶的更多信息,请参阅如何添加 S3 存储桶策略? 有关批量工作流程的更多信息,请参阅获取批量物品推荐获取批量用户细分

JSON
{ "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:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }

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

要导出数据集,Amazon Personalize 需要权限来针对 Amazon S3 存储桶使用 PutObjectListBucket 操作。以下示例策略向 Amazon Personalize 主体授予 PutObjectListBucket 权限。将 amzn-s3-demo-bucket 替换为您的存储桶名称,并将策略附加到存储桶。有关将 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:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }