

**终止支持通知：** AWS 将于 2026 年 10 月 30 日终止对亚马逊 Pinpoint 的支持。2026 年 10 月 30 日之后，您将不再能够访问 Amazon Pinpoint 控制台或 Amazon Pinpoint 资源（端点、分段、活动、旅程和分析）。有关更多信息，请参阅 [Amazon Pinpoint 终止支持](https://docs.aws.amazon.com/console/pinpoint/migration-guide)。**注意：** APIs 与短信相关、语音、移动推送、OTP 和电话号码验证不受此更改的影响，并受 AWS 最终用户消息的支持。

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

# 用于导出端点或分段的 IAM 角色
<a name="permissions-export-endpoints"></a>

您可以通过创建导出任务来获取端点列表。创建导出任务时，必须指定项目 ID，并可以选择指定分段 ID。然后，Amazon Pinpoint 将与项目或分段关联的端点列表导出到 Amazon Simple Storage Service (Amazon S3) 存储桶。生成的文件包含采用 JSON 格式的端点列表及其属性（如渠道、地址、选择加入/选择退出状态、创建日期和端点 ID）。

要创建导出任务，必须配置一个 IAM 角色，以允许 Amazon Pinpoint 向 Amazon S3 存储桶中写入。配置角色的过程包含以下两个步骤：

1. 创建 IAM 策略，以允许实体（此处为 Amazon Pinpoint）写入到特定 Amazon S3 存储桶。

1. 创建 IAM 角色并向其附加此策略。

本主题包含完成这两个步骤的过程。这些过程假定您已创建了 Amazon S3 存储桶，并在该存储桶创建了文件夹以用于存储导出的分段。有关创建存储桶的信息，请参阅《Amazon Simple Storage Service 用户指南》中的[创建存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html)。**

这些过程同样假定您已安装和配置 AWS Command Line Interface (AWS CLI)。有关设置的信息 AWS CLI，请参阅[《*AWS Command Line Interface 用户指南*》 AWS CLI中的安装](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)。

## 步骤 1：创建 IAM 策略
<a name="permissions-export-endpoints-create-policy"></a>

IAM 策略用于定义实体（如身份或资源）的权限。要创建用于导出 Amazon Pinpoint 端点的角色，必须创建一个策略，以授予写入到特定 Amazon S3 存储桶中的特定文件夹的权限。以下策略示例遵循授予最低权限这一安全实践，也就是说，仅授予执行某项任务所需的权限。

**创建 IAM policy**

1. 在文本编辑器中，创建一个新文件。将以下代码粘贴到该文件中：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowUserToSeeBucketListInTheConsole",
               "Action": [
                   "s3:ListAllMyBuckets",
                   "s3:GetBucketLocation"
               ],
               "Effect": "Allow",
               "Resource": [ "arn:aws:s3:::*" ]
           },
           {
               "Sid": "AllowRootAndHomeListingOfBucket",
               "Action": [
                   "s3:ListBucket"
               ],
               "Effect": "Allow",
               "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-example-bucket" ],
               "Condition": {
                   "StringEquals": {
                       "s3:delimiter": [ "/" ],
                       "s3:prefix": [
                           "",
                           "Exports/"
                       ]
                   }
               }
           },
           {
               "Sid": "AllowListingOfUserFolder",
               "Action": [
                   "s3:ListBucket"
               ],
               "Effect": "Allow",
               "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-example-bucket" ],
               "Condition": {
                   "StringLike": {
                       "s3:prefix": [
                           "Exports/*"
                       ]
                   }
               }    
           },
           {
               "Sid": "AllowAllS3ActionsInUserFolder",
               "Action": [ "s3:*" ],
               "Effect": "Allow",
               "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-example-bucket/Exports/*" ]
           }
       ]
   }
   ```

------

   在前面的代码中，将的所有实例替换为包含您要将区段信息导出到的文件夹的 Amazon S3 存储桶的名称。*amzn-s3-demo-bucket-example-bucket*此外，将的所有*Exports*实例替换为文件夹本身的名称。

   完成后，将文件另存为 `s3policy.json`。

1. 通过使用 AWS CLI，导航到`s3policy.json`文件所在的目录。然后，键入以下命令以创建策略：

   ```
   aws iam create-policy --policy-name s3ExportPolicy --policy-document file://s3policy.json
   ```

   如果策略创建成功，则您会看到类似于以下内容的输出：

   ```
   {
       "Policy": {
           "CreateDate": "2018-04-11T18:44:34.805Z",
           "IsAttachable": true,
           "DefaultVersionId": "v1",
           "AttachmentCount": 0,
           "PolicyId": "ANPAJ2YJQRJCG3EXAMPLE",
           "UpdateDate": "2018-04-11T18:44:34.805Z",
           "Arn": "arn:aws:iam::123456789012:policy/s3ExportPolicy",
           "PolicyName": "s3ExportPolicy",
           "Path": "/"
       }
   }
   ```

   复制策略的 Amazon 资源名称 (ARN)（之前示例中的 `arn:aws:iam::123456789012:policy/s3ExportPolicy`）。在下一部分，当您创建角色时，必须提供此 ARN。
**注意**  
如果弹出一条消息说，您的账户无权执行 `CreatePolicy` 操作，则您需要将一个允许您创建新的 IAM 策略和角色的策略附加到用户。有关更多信息，请参阅《 IAM 用户指南》**中的[添加和移除 IAM 身份权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#attach-managed-policy-console)。

## 步骤 2：创建 IAM 角色
<a name="permissions-export-endpoints-create-role"></a>

创建 IAM 策略后，您可以创建一个角色并向其附加该策略。每个 IAM 角色都包含一个*信任策略*，即，用来指定哪些实体被允许代入角色的一组规则。在本部分中，您将创建一个信任策略，以允许 Amazon Pinpoint 代入角色。接下来，您可以创建角色本身，然后附加您在前一部分创建的策略。

**创建 IAM 角色**

1. 在文本编辑器中，创建一个新文件。将以下代码粘贴到该文件中：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement":[
           {
               "Effect":"Allow",
               "Principal":{
                   "Service":"pinpoint.amazonaws.com"
               },
               "Action":"sts:AssumeRole",
               "Condition": {
                   "StringEquals": {
                       "aws:SourceAccount": "accountId"
                   },
                   "ArnLike": {
                   "aws:SourceArn": "arn:aws:mobiletargeting:us-east-1:111122223333:apps/applicationId"
                   }
               }
           }
       ]
   }
   ```

------

   将该文件保存为 `trustpolicy.json`。

1. 通过使用 AWS CLI，导航到`trustpolicy.json`文件所在的目录。然后，键入以下命令以创建新角色：

   ```
   aws iam create-role --role-name s3ExportRole --assume-role-policy-document file://trustpolicy.json
   ```

1. 在命令行中，键入以下命令，将您在前一部分创建的策略附加到您刚创建的角色：

   ```
   aws iam attach-role-policy --policy-arn arn:aws:iam::123456789012:policy/s3ExportPolicy --role-name s3ExportRole
   ```

   在前面的命令中，*arn:aws:iam::123456789012:policy/s3ExportPolicy*替换为您在上一节中创建的策略的 ARN。