用於匯出端點或客群的 IAM 角色 - Amazon Pinpoint

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

用於匯出端點或客群的 IAM 角色

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

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

  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 儲存貯體的名稱 (您要匯出的客群資訊,就放在這個 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 Resource Name (ARN) (上述範例中的 arn:aws:iam::123456789012:policy/s3ExportPolicy)。在下一節,您必須在建立角色時提供此 ARN。

    注意

    如果出現訊息,說明您的帳戶無權執行 CreatePolicy 操作,您需要將政策與您的使用者連接,這樣才能建立新的 IAM 政策和角色。如需詳細資訊,請參閱《IAM 使用者指南》中的新增和移除 IAM 身分許可

步驟 2:建立 IAM 角色

現在您已建立 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: aw: iam:: 123456789012: 政策 /s3 取代為您在上一節中建立的政策ExportPolicy的 ARN。