

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

# 向 Amazon Personalize 授予访问 Amazon S3 资源的权限
<a name="granting-personalize-s3-access"></a>

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

1. 如果您还没有设置，请按照[设置权限](aws-personalize-set-up-permissions.md)中的步骤设置权限，以便 Amazon Personalize 代表您访问您在 Amazon Personalize 中的资源。

1.  向 Amazon Personalize 服务角色（参见[为 Amazon Personalize 创建 IAM 角色](set-up-required-permissions.md#set-up-create-role-with-permissions)）附加允许访问 Amazon S3 存储桶的策略。有关更多信息，请参阅 [将 Amazon S3 策略附加到您的 Amazon Personalize 服务角色中](#attaching-s3-policy-to-role)。

1.  将存储桶策略附加到包含数据文件的 Amazon S3 存储桶，以便 Amazon Personalize 访问这些文件。有关更多信息，请参阅 [将 Amazon Personalize 访问策略附加到您的 Amazon S3 存储桶中](#attach-bucket-policy)。

1.  如果您使用 AWS Key Management Service (AWS KMS) 进行加密，则必须向 Amazon Personalize 和 Amazon Personalize IAM 服务角色授予使用您的密钥的权限。有关更多信息，请参阅 [授予 Amazon Personalize 使用您的 AWS KMS 密钥的权限](granting-personalize-key-access.md)。

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

**Topics**
+ [将 Amazon S3 策略附加到您的 Amazon Personalize 服务角色中](#attaching-s3-policy-to-role)
+ [将 Amazon Personalize 访问策略附加到您的 Amazon S3 存储桶中](#attach-bucket-policy)

## 将 Amazon S3 策略附加到您的 Amazon Personalize 服务角色中
<a name="attaching-s3-policy-to-role"></a>

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

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

1. 在导航窗格中选择 **Policies (策略)**，然后选择 **Create policy (创建策略)**。

1. 选择“JSON”选项卡，然后更新策略，如下所示。将 `amzn-s3-demo-bucket` 替换为您的存储桶的名称。您可以对数据集导入作业或数据删除作业使用以下策略。如果您使用的是批量工作流程或正在创建数据集导出作业，则 Amazon Personalize 需要额外权限。请参阅[批量工作流程的服务角色策略](#role-policy-for-batch-workflows)或[用于导出数据集的 Amazon S3 存储桶策略](#bucket-policy-for-export)。

------
#### [ 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/*"
               ]
           }
       ]
   }
   ```

------

1. 选择**下一步：标签**。（可选）添加任何标签并选择**查看**。

1. 为策略命名。

1. （可选）对于**描述**，输入描述此策略的简短句子，例如，**Allow Amazon Personalize to access its Amazon S3 bucket.**

1. 选择**创建策略**。

1. 在导航窗格中，选择**角色**，然后选择您为 Amazon Personalize 创建的角色。请参阅[为 Amazon Personalize 创建 IAM 角色](set-up-required-permissions.md#set-up-create-role-with-permissions)。

1. 对于**权限**，选择**附加策略**。

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

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

1. 选择**附加策略**。

   在您的角色准备好用于 Amazon Personalize 之前，您还必须将存储桶策略附加到包含您的数据的 Amazon S3 存储桶。请参阅[将 Amazon Personalize 访问策略附加到您的 Amazon S3 存储桶中](#attach-bucket-policy)。

### 批量工作流程的服务角色策略
<a name="role-policy-for-batch-workflows"></a>

要完成批量工作流程，Amazon Personalize 需要权限来访问文件并将其添加到 Amazon S3 存储桶。按照上述步骤将以下策略附加到您的 Amazon Personalize 角色中。将 `amzn-s3-demo-bucket` 替换为您的存储桶的名称。有关批量工作流程的更多信息，请参阅[获取批量物品推荐](getting-batch-recommendations.md)或[获取批量用户细分](getting-user-segments.md)。

------
#### [ 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/*"
            ]
        }
    ]
}
```

------

### 用于导出数据集的服务角色策略
<a name="role-policy-for-export"></a>

要导出数据集，您的 Amazon Personalize 服务角色需要权限来针对 Amazon S3 存储桶使用 `PutObject` 和 `ListBucket` 操作。以下示例策略向 Amazon Personalize 授予 `PutObject` 和 `ListBucket` 权限。将 `amzn-s3-demo-bucket` 替换为存储桶的名称，并将该策略附加到您的 Amazon Personalize 服务角色中。有关将策略附加到服务角色的信息，请参阅[将 Amazon S3 策略附加到您的 Amazon Personalize 服务角色中](#attaching-s3-policy-to-role)。

```
{
    "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 存储桶中
<a name="attach-bucket-policy"></a>

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

有关 Amazon S3 存储桶策略的更多信息，请参阅[如何添加 S3 存储桶策略？](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html)。

------
#### [ 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 存储桶策略
<a name="bucket-policy-for-batch-workflows"></a>

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

有关将 Amazon S3 存储桶策略添加到存储桶的更多信息，请参阅[如何添加 S3 存储桶策略？](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html) 有关批量工作流程的更多信息，请参阅[获取批量物品推荐](getting-batch-recommendations.md)或[获取批量用户细分](getting-user-segments.md)。

------
#### [ 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 存储桶策略
<a name="bucket-policy-for-export"></a>

要导出数据集，Amazon Personalize 需要权限来针对 Amazon S3 存储桶使用 `PutObject` 和 `ListBucket` 操作。以下示例策略向 Amazon Personalize 主体授予 `PutObject` 和 `ListBucket` 权限。将 `amzn-s3-demo-bucket` 替换为您的存储桶名称，并将策略附加到存储桶。有关将 Amazon S3 存储桶策略添加到存储桶的信息，请参阅《Amazon Simple Storage Service 用户指南》中的[如何添加 S3 存储桶策略？](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html)。

```
{
    "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/*"
            ]
        }
    ]
}
```