向 Amazon Personalize 授予访问 Amazon S3 资源的权限
要向 Amazon Personalize 授予访问 Amazon S3 存储桶的权限,请执行以下操作:
-
如果您还没有设置,请按照设置权限中的步骤设置权限,以便 Amazon Personalize 代表您访问您在 Amazon Personalize 中的资源。
-
向 Amazon Personalize 服务角色(参见为 Amazon Personalize 创建 IAM 角色)附加允许访问 Amazon S3 存储桶的策略。有关更多信息,请参阅 将 Amazon S3 策略附加到您的 Amazon Personalize 服务角色中。
-
将存储桶策略附加到包含数据文件的 Amazon S3 存储桶,以便 Amazon Personalize 访问这些文件。有关更多信息,请参阅 将 Amazon Personalize 访问策略附加到您的 Amazon S3 存储桶中。
-
如果您使用 AWS Key Management Service (AWS KMS) 进行加密,则必须向 Amazon Personalize 和 Amazon Personalize IAM 服务角色授予使用您密钥的权限。有关更多信息,请参阅 向 Amazon Personalize 授予使用您 AWS KMS 密钥的权限。
注意
由于 Amazon Personalize 不与 AWS VPC 通信,因此,Amazon Personalize 无法与仅允许 VPC 访问的 Amazon S3 存储桶进行交互。
将 Amazon S3 策略附加到您的 Amazon Personalize 服务角色中
要将 Amazon S3 策略附加到您的 Amazon Personalize 角色中,请执行以下操作:
-
登录 IAM 控制台 (https://console.aws.amazon.com/iam/
)。 -
在导航窗格中选择 Policies (策略),然后选择 Create policy (创建策略)。
-
选择“JSON”选项卡,然后更新策略,如下所示。将
amzn-s3-demo-bucket
替换为您的存储桶的名称。您可以对数据集导入作业或数据删除作业使用以下策略。如果您使用的是批量工作流程或正在创建数据集导出作业,则 Amazon Personalize 需要额外权限。请参阅 批量工作流程的服务角色策略 或 用于导出数据集的 Amazon S3 存储桶策略。{ "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
/*" ] } ] } -
选择下一步:标签。(可选)添加任何标签并选择查看。
-
为策略命名。
-
(可选)对于描述,输入描述此策略的简短句子,例如,
Allow Amazon Personalize to access its Amazon S3 bucket.
-
选择创建策略。
-
在导航窗格中,选择角色,然后选择您为 Amazon Personalize 创建的角色。请参阅 为 Amazon Personalize 创建 IAM 角色。
-
对于权限,选择附加策略。
-
要显示列表中的策略,请在 Filter policies (筛选策略) 筛选框中键入部分策略名称。
-
选中在该过程前面创建的策略旁边的复选框。
-
选择附加策略。
在您的角色准备好用于 Amazon Personalize 之前,您还必须将存储桶策略附加到包含您的数据的 Amazon S3 存储桶。请参阅 将 Amazon Personalize 访问策略附加到您的 Amazon S3 存储桶中。
批量工作流程的服务角色策略
要完成批量工作流程,Amazon Personalize 需要权限来访问文件并将其添加到 Amazon S3 存储桶。按照上述步骤将以下策略附加到您的 Amazon Personalize 角色中。将 amzn-s3-demo-bucket
替换为您的存储桶的名称。有关批量工作流程的更多信息,请参阅获取批量物品推荐或获取批量用户细分。
{ "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 存储桶使用 PutObject
和 ListBucket
操作。以下示例策略向 Amazon Personalize 授予 PutObject
和 ListBucket
权限。将 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 存储桶策略?。
{ "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 存储桶策略? 有关批量工作流程的更多信息,请参阅获取批量物品推荐或获取批量用户细分。
{ "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 存储桶使用 PutObject
和 ListBucket
操作。以下示例策略向 Amazon Personalize 主体授予 PutObject
和 ListBucket
权限。将 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
/*" ] } ] }