IAM用於匯出端點或區段的角色 - Amazon Pinpoint

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

IAM用於匯出端點或區段的角色

您可以建立匯出任務以取得端點清單。建立匯出任務時,必須指定專案 ID,客群 ID 則可不指定。Amazon Pinpoint 會將與專案或客群相關聯的端點清單,匯出到 Amazon Simple Storage Service (Amazon S3) 儲存貯體。產生的檔案包含JSON格式化的端點清單及其屬性,例如通道、位址、選擇加入/退出狀態、建立日期和端點 ID。

若要建立匯出任務,您必須設定允許 Amazon Pinpoint 寫入 Amazon S3 儲存貯體的IAM角色。設定角色的程序包含兩個步驟:

  1. 建立允許實體 (在本例中為 Amazon Pinpoint) 寫入特定 Amazon S3 儲存貯體的IAM政策。

  2. 建立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 政策
  1. 在文字編輯器中,建立新檔案。將以下程式碼貼到檔案:

    { "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

  2. 透過使用 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 角色
  1. 在文字編輯器中,建立新檔案。將以下程式碼貼到檔案:

    { "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

  2. 透過使用 AWS CLI,瀏覽至trustpolicy.json檔案所在的目錄。輸入以下命令來建立新的角色:

    aws iam create-role --role-name s3ExportRole --assume-role-policy-document file://trustpolicy.json
  3. 在命令列,輸入下列命令,將您在上一節建立的政策連接到您剛建立的角色:

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

    在前面的命令中,替換 arn:aws:iam::123456789012:policy/s3ExportPolicy 使用您在上一節中創建ARN的策略。