AWS Pinpointでエンドポイント一覧をS3にエクスポートする方法

AWS Pinpointでエンドポイント一覧をS3にエクスポートする方法

AWS PinpointのCLIでエンドポイント取得やエンドポイント追加はできますが、一覧を取得して標準出力してくれるコマンドがないようです。

CLIでエンドポイント一覧をS3にエクスポートするcreate-export-jobがあります。

まずはIAMポリシー、IAMロールを作成してS3にエクスポートできるようにします。

IAMポリシー作成

ポリシーを作成します。以下のs3policy.jsonファイルを作成します。

s3policy.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:::バケット名" ],
"Condition": {
"StringEquals": {
"s3:delimiter": [ "/" ],
"s3:prefix": [
"",
"Exports/"
]
}
}
},
{
"Sid": "AllowListingOfUserFolder",
"Action": [
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": [ "arn:aws:s3:::バケット名" ],
"Condition": {
"StringLike": {
"s3:prefix": [
"Exports/*"
]
}
}
},
{
"Sid": "AllowAllS3ActionsInUserFolder",
"Action": [ "s3:*" ],
"Effect": "Allow",
"Resource": [ "arn:aws:s3:::バケット名/Exports/*" ]
}
]
}

view raw
gistfile1.txt
hosted with ❤ by GitHub

CLIで以下を実行します。

ポリシーにs3ExportPolicyが作成されているはずです。

AWS Pinpointでエンドポイント一覧をS3にエクスポートする方法

IAMロール作成

ロールを作成します。以下のtrustpolicy.jsonファイルを作成します。

trustpolicy.json

{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Principal":{
"Service":"pinpoint.amazonaws.com"
},
"Action":"sts:AssumeRole"
}
]
}

view raw
gistfile1.txt
hosted with ❤ by GitHub

CLIで以下を実行します。

ロールにs3ExportRoleが作成されているはずです。

AWS Pinpointでエンドポイント一覧をS3にエクスポートする方法

ポリシーをロールにアタッチ

最初に作成したポリシーをロールにアタッチして完了です。

CLIで以下を実行します。–policy-arnでポリシーのARNを指定します。

エクスポートする

これでRoleArnもできたので実際にエクスポートしてみます。

CLIで以下を実行します。RoleArnではIAMロールのARNを指定します。

標準出力で以下のように出力され、バケット名/Exports/配下に圧縮ファイル(gz)が作成されていればOKです。

{
"ExportJobResponse": {
"CreationDate": "2020-07-04T06:21:41.606Z",
"Definition": {
"RoleArn": "arn:aws:iam::999999999999:role/s3ExportRole",
"S3UrlPrefix": "s3://バケット名/Exports/"
},
"Id": "22d2e2f2452d4645558111333ada506c",
"JobStatus": "CREATED",
"Type": "EXPORT"
}
}

view raw
gistfile1.txt
hosted with ❤ by GitHub

AWS Pinpointでエンドポイント一覧をS3にエクスポートする方法

展開すると、1つのエンドポイントが一つのJSON形式で表示されています。3つエンドポイントが存在する場合は1ファイルにJSON形式が3つ書かれています。

このファイルで削除漏れのエンドポイントを削除していくことが可能です。

参考サイト

IAMの詳細

https://docs.aws.amazon.com/ja_jp/pinpoint/latest/developerguide/permissions-export-endpoints.html

エクスポートする方法の公式ドキュメント

https://docs.aws.amazon.com/ja_jp/pinpoint/latest/developerguide/audience-data-export.html

スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA