本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
IAM用于导出端点或分段的角色
您可以通过创建导出任务来获取端点列表。创建导出任务时,必须指定项目 ID,并可以选择指定分段 ID。然后,Amazon Pinpoint 将与项目或分段关联的端点列表导出到 Amazon Simple Storage Service (Amazon S3) 存储桶。生成的文件包含端点及其属性的JSON格式列表,例如频道、地址、选择加入/选择退出状态、创建日期和端点 ID。
要创建导出任务,您必须配置一个IAM角色以允许 Amazon Pinpoint 写入亚马逊 S3 存储桶。配置角色的过程包含以下两个步骤:
-
创建允许实体(在本例中为 Amazon Pinpoint)写入特定的 Amazon S3 存储桶的IAM策略。
-
创建IAM角色并将策略附加到该角色上。
本主题包含完成这两个步骤的过程。这些过程假定您已创建了 Amazon S3 存储桶,并在该存储桶创建了文件夹以用于存储导出的分段。有关创建存储桶的信息,请参阅《Amazon Simple Storage Service 用户指南》中的创建存储桶。
这些过程同样假定您已安装和配置 AWS Command Line Interface (AWS CLI)。有关设置的信息 AWS CLI,请参阅《AWS Command Line Interface 用户指南》 AWS CLI中的安装。
步骤 1:创建 IAM策略
IAM策略定义实体(例如身份或资源)的权限。要创建用于导出 Amazon Pinpoint 端点的角色,必须创建一个策略,以授予写入到特定 Amazon S3 存储桶中的特定文件夹的权限。以下策略示例遵循授予最低权限这一安全实践,也就是说,仅授予执行某项任务所需的权限。
创建 IAM 策略
-
在文本编辑器中,创建一个新文件。将以下代码粘贴到该文件中:
{ "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:::
example-bucket
" ], "Condition": { "StringEquals": { "s3:delimiter": [ "/" ], "s3:prefix": [ "", "Exports
/" ] } } }, { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::example-bucket
" ], "Condition": { "StringLike": { "s3:prefix": [ "Exports
/*" ] } } }, { "Sid": "AllowAllS3ActionsInUserFolder", "Action": [ "s3:*" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::example-bucket
/Exports
/*" ] } ] }在前面的代码中,替换所有实例
example-bucket
使用包含您要将区段信息导出到的文件夹的 Amazon S3 存储桶的名称。另外,替换所有实例Exports
使用文件夹本身的名称。完成后,将文件另存为
s3policy.json
。 -
通过使用 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身份权限。
步骤 2:创建 IAM 角色
现在,您已经创建了IAM策略,可以创建一个角色并将该策略附加到该角色上。每个IAM角色都包含一个信任策略,即一组规则,用于指定允许哪些实体担任该角色。在本部分中,您将创建一个信任策略,以允许 Amazon Pinpoint 代入角色。接下来,您可以创建角色本身,然后附加您在前一部分创建的策略。
创建 IAM 角色
-
在文本编辑器中,创建一个新文件。将以下代码粘贴到该文件中:
{ "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:region
:accountId
:apps/applicationId
" } } } ] }将该文件保存为
trustpolicy.json
。 -
通过使用 AWS CLI,导航到
trustpolicy.json
文件所在的目录。然后,键入以下命令以创建新角色:aws iam create-role --role-name s3ExportRole --assume-role-policy-document file://
trustpolicy.json
-
在命令行中,键入以下命令,将您在前一部分创建的策略附加到您刚创建的角色:
aws iam attach-role-policy --policy-arn
arn:aws:iam::123456789012:policy/s3ExportPolicy
--role-name s3ExportRole在前面的命令中,替换
arn:aws:iam::123456789012:policy/s3ExportPolicy
与ARN您在上一节中创建的策略相同。