エンドポイントまたはセグメントをエクスポートするための IAM ロール
エンドポイントのリストを取得するには、エクスポートジョブを作成します。エクスポートジョブを作成したら、プロジェクト ID を指定します。また、セグメント ID をオプションで指定できます。Amazon Pinpoint は、プロジェクトまたはセグメントに関連付けられたエンドポイントのリストを Amazon Simple Storage Service (Amazon S3) バケットにエクスポートします。結果のファイルには、エンドポイントとその属性 (チャンネル、アドレス、オプトイン/オプトアウト状態、作成日、エンドポイント ID など) のリストが JSON 形式で含まれています。
エクスポートジョブを作成するには、Amazon Pinpoint による Amazon S3 バケットへの書き込みを許可する IAM ロールを設定する必要があります。ロールを設定するプロセスは、2 つのステップで構成されます。
-
エンティティ (この場合は 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 バケットの特定のフォルダに書き込むアクセス許可を付与するポリシーを作成する必要があります。次のポリシー例では、最小特権、つまり、1 つのタスクを実行するのに必要なアクセス許可のみを付与するセキュリティプラクティスを示します。
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:::
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
/*" ] } ] }前述のコードで、
amzn-s3-demo-bucket-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 ID アクセス許可の追加と削除」を参照してください。
ステップ 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 に置き換えます。