Amazon Personalize から推奨事項を取得するための IAM ロール
Amazon Personalize キャンペーンとしてデプロイされた Amazon Personalize ソリューションから推奨データを取得するように Amazon Pinpoint を設定できます。このデータを使用して、各受信者の属性と動作に基づいてパーソナライズされた推奨事項をメッセージ受信者に送信できます。詳細については、『Amazon Pinpoint ユーザーガイド』の「機械学習モデル」を参照してください。
Amazon Personalize キャンペーンから推奨事項データを取得する前に、Amazon Pinpoint がキャンペーンからデータを取得できる AWS Identity and Access Management (IAM) ロールを作成する必要があります。Amazon Pinpoint は、コンソールを使用して Amazon Pinpoint で推奨モデルを設定した場合は、自動的にこのロールを作成できます。または、このロールを手動で作成することもできます。
ロールを手動で作成するには、IAM API を使用して次の手順を実行します。
-
エンティティ (この場合は Amazon Pinpoint) が Amazon Personalize キャンペーンから推奨データを取得できるようにする IAM ポリシーを作成します。
-
IAM ロールを作成して、それに IAM ポリシーをアタッチします。
このトピックでは、AWS Command Line Interface (AWS CLI) を使用してこれらの手順を実行する方法について説明します。この手順では、Amazon Personalize ソリューションを作成済みであり、それを Amazon Personalize キャンペーンとしてデプロイ済みであるものとします。キャンペーンの作成およびデプロイの詳細については、『Amazon Personalize デベロッパーガイド』の「キャンペーンの作成」を参照してください。
このトピックでは、AWS CLI がすでにインストールされ、設定されていることを前提としています。AWS CLI のセットアップの詳細については、『AWS Command Line Interface ユーザーガイド』の「AWS CLI のインストール」を参照してください。
ステップ 1: IAM ポリシーの作成
IAM ポリシーは、アイデンティティやリソースなどのエンティティのアクセス許可を定義します。Amazon Pinpoint が Amazon Personalize キャンペーンから推奨事項データを取得することを許可するロールを作成するには、まずロールに IAM ポリシーを作成する必要があります。このポリシーでは、Amazon Pinpoint に以下を許可する必要があります。
-
キャンペーンによってデプロイされたソリューションの設定情報を取得します (
DescribeSolution
)。 -
キャンペーンのステータスを確認します (
DescribeCampaign
)。 -
キャンペーンから推奨データを取得します (
GetRecommendations
)。
次の手順では、ポリシーの例により、特定の Amazon Personalize キャンペーンによってデプロイされた特定の Amazon Personalize ソリューションに対してこのアクセスが許可されます。
IAM ポリシーを作成するには
-
テキストエディタで新規ファイルを作成します。ファイルに次のコードを貼り付けます。
{ "Version":"2012-10-17", "Statement":[ { "Sid":"RetrieveRecommendationsOneCampaign", "Effect":"Allow", "Action":[ "personalize:DescribeSolution", "personalize:DescribeCampaign", "personalize:GetRecommendations" ], "Resource":[ "arn:aws:personalize:
region
:accountId
:solution/solutionId
", "arn:aws:personalize:region
:accountId
:campaign/campaignId
" ] } ] }前述の例では、
イタリック体
のテキストを自分の情報に置き換えます。-
region
– Amazon Personalize ソリューションとキャンペーンをホストする AWS リージョンの名前。 -
accountId
— お客様のAWS アカウント ID。 -
solutionId
– キャンペーンによってデプロイされる Amazon Personalize ソリューションの一意のリソース ID。 -
campaignId
– 推奨事項データを取得する Amazon Personalize キャンペーンの一意のリソース ID。
-
-
終了したら、
RetrieveRecommendationsPolicy.json
としてファイルを保存します。 -
コマンドラインインターフェイスを使用して、
RetrieveRecommendationsPolicy.json
ファイルを保存したディレクトリに移動します。 -
次のコマンドを入力して、ポリシーを作成し、
RetrieveRecommendationsPolicy
と名前を付けます。別の名前を使用するには、[RetrieveRecommendationsPolicy
] を目的の名前に変更します。aws iam create-policy --policy-name
RetrieveRecommendationsPolicy
--policy-document file://RetrieveRecommendationsPolicy.json注記
CreatePolicy
オペレーションを実行する権限がアカウントに付与されていないというメッセージを受信した場合は、アカウントの新しい IAM ポリシーやロールの作成を可能にするポリシーをユーザーにアタッチする必要があります。詳細については、『IAM ユーザーガイド』の「IAM ID アクセス許可の追加と削除」を参照してください。 -
ポリシーの Amazon リソースネーム (ARN) (前述の例の
arn:aws:iam::123456789012:policy/RetrieveRecommendationsPolicy
) をコピーします。次のセクションで、IAM ロールを作成するために、この ARN が必要になります。
ステップ 2: IAM ロールを作成する
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/*" } } } ] } -
RecommendationsTrustPolicy.json
という名前でファイルを保存します。 -
コマンドラインインターフェイスを使用して、
RecommendationsTrustPolicy.json
ファイルを保存したディレクトリに移動します。 -
次のコマンドを入力して、新しいロールを作成し、
PinpointRoleforPersonalize
と名前を付けます。別の名前を使用するには、[PinpointRoleforPersonalize
] を目的の名前に変更します。aws iam create-role --role-name
PinpointRoleforPersonalize
--assume-role-policy-document file://RecommendationsTrustPolicy.json -
次のコマンドを入力し、前のセクションで作成したポリシーを、先ほど作成したロールにアタッチします。
aws iam attach-role-policy --policy-arn
arn:aws:iam::123456789012:policy/RetrieveRecommendationsPolicy
--role-namePinpointRoleforPersonalize
前述のコマンドで、[
arn:aws:iam::123456789012:policy/RetrieveRecommendationsPolicy
] を、前のセクションで作成したポリシーの ARN に置き換えます。また、ロールに別の名前を指定した場合は、[PinpointRoleforPersonalize
] をステップ 4 で指定したロールの名前に置き換えます。