Amazon Pinpoint と の連携方法 IAM - Amazon Pinpoint

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon Pinpoint と の連携方法 IAM

Amazon Pinpoint を使用するには、 AWS アカウントのユーザーには、分析データの表示、プロジェクトの作成、ユーザーセグメントの定義、キャンペーンのデプロイなどを許可するアクセス許可が必要です。モバイルアプリケーションまたはウェブアプリケーションを Amazon Pinpoint と統合する場合、アプリケーションのユーザーは Amazon Pinpoint へのアクセスも必要とします。このアクセスにより、アプリケーションはエンドポイントを登録し、使用状況データを Amazon Pinpoint にレポートできます。Amazon Pinpoint 機能へのアクセスを許可するには、ID または Amazon Pinpoint IAM リソースの Amazon Pinpoint アクションを許可する AWS Identity and Access Management (IAM) ポリシーを作成します。

IAM は、管理者が AWS リソースへのアクセスを安全に制御するのに役立つサービスです。IAM ポリシーには、特定のユーザーまたは特定のリソースによる特定のアクションを許可または拒否するステートメントが含まれます。Amazon Pinpoint には、IAMポリシーで Amazon Pinpoint ユーザーとリソースの詳細なアクセス許可を指定するために使用できる一連のアクションが用意されています。これにより、重要なデータの漏洩やリソースの侵害を起こすような過度に寛容なポリシーを作成することなく、Amazon Pinpoint への適切なレベルのアクセスを付与できます。例えば、Amazon Pinpoint の管理者には無制限のアクセスを許可する一方で、特定のプロジェクトにのみアクセスする必要のある個人には読み取り専用アクセスを付与できます。

IAM を使用して Amazon Pinpoint へのアクセスを管理する前に、Amazon Pinpoint で使用できるIAM機能を理解しておく必要があります。Amazon Pinpoint やその他の AWS のサービスが とどのように連携するかの概要についてはIAM、 IAM ユーザーガイドAWS 「 と連携する のサービスIAM」を参照してください。

Amazon Pinpoint アイデンティティベースのポリシー

IAM ID ベースのポリシーでは、許可または拒否されたアクションとリソース、およびアクションが許可または拒否される条件を指定できます。Amazon Pinpoint は、特定のアクション、リソース、および条件キーをサポートしています。JSON ポリシーで使用できるすべての要素については、IAM「 ユーザーガイド」のIAMJSON「ポリシー要素リファレンス」を参照してください。

アクション

管理者はポリシーを使用して AWS JSON、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

JSON ポリシーの Action要素は、ポリシー内のアクセスを許可または拒否するために使用できるアクションを記述します。ポリシーアクションは通常、関連付けられた AWS APIオペレーションと同じ名前です。一致するAPIオペレーションがないアクセス許可のみのアクションなど、いくつかの例外があります。また、ポリシーに複数のアクションが必要なオペレーションもあります。これらの追加アクションは、依存アクションと呼ばれます。

このアクションは、関連付けられたオペレーションを実行するための権限を付与するポリシーで使用されます。

つまり、ポリシーアクションによって、ユーザーが Amazon Pinpoint コンソールで実行できる操作が制御されます。また、、 AWS Command Line Interface (AWS CLI) AWS SDKs、または Amazon Pinpoint APIsを直接使用して、ユーザーがプログラムで実行できる操作も制御します。

Amazon Pinpoint のポリシーアクションでは、次のプレフィックスを使用します。

  • mobiletargeting – Amazon Pinpoint のプライマリAPIである Amazon Pinpoint から派生するアクションAPIの場合。

  • sms-voice – Amazon Pinpoint SMSと Voice から派生するアクションの場合。Amazon Pinpoint と Voice はAPI、Amazon Pinpoint で SMS と音声チャネルを使用および管理するための高度なオプションAPIを提供する補足です。

例えば、Amazon Pinpoint の GetSegmentsオペレーションに対応するアクションであるプロジェクトのすべてのセグメントに関する情報を表示するアクセス許可をユーザーに付与するにはAPI、ポリシーに mobiletargeting:GetSegmentsアクションを含めます。ポリシーステートメントには、Action または NotAction 要素を含める必要があります。Amazon Pinpoint は、ユーザーが実行できるタスクを記述した独自のアクションのセットを定義します。

単一のステートメントで複数のアクションを指定するには、アクション間をコンマで区切ります。

"Action": [ "mobiletargeting:action1", "mobiletargeting:action2"

ワイルドカード (*) を使用して複数のアクションを指定することもできます。例えば、Get という単語で始まるすべてのアクションを指定するには、次のアクションを含めます。

"Action": "mobiletargeting:Get*"

ただしベストプラクティスとして、最小特権 の原則に準拠したポリシーを作成してください。つまり、特定のアクションを実行するために必要なアクセス許可のみが含まれたポリシーを作成します。

IAM ポリシーで使用できる Amazon Pinpoint アクションのリストについては、「」を参照してくださいIAM ポリシーの Amazon Pinpoint アクション

リソース

管理者はポリシーを使用して AWS JSON、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

Resource JSON ポリシー要素は、アクションが適用されるオブジェクトを指定します。ステートメントには、Resource または NotResource 要素を含める必要があります。ベストプラクティスとして、Amazon リソースネーム (ARN) を使用してリソースを指定します。これは、リソースレベルの許可と呼ばれる特定のリソースタイプをサポートするアクションに対して実行できます。

オペレーションのリスト化など、リソースレベルの権限をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (*) を使用します。

"Resource": "*"

例えば、mobiletargeting:GetSegments アクションは、特定の Amazon Pinpoint プロジェクトに関連付けられているすべてのセグメントに関する情報を取得します。プロジェクトを次の形式で で識別ARNします。

arn:aws:mobiletargeting:${Region}:${Account}:apps/${projectId}

の形式の詳細についてはARNs、「」の「Amazon リソースネーム (ARNs)」を参照してくださいAWS 全般のリファレンス

IAM ポリシーでは、次のタイプの Amazon Pinpoint リソースARNsに を指定できます。

  • キャンペーン

  • ジャーニー

  • メッセージテンプレート (一部のコンテキストではテンプレートと呼ばれます)

  • プロジェクト (一部のコンテキストではアプリまたはアプリケーションと呼ばれます)

  • 推奨モデル (一部のコンテキストでは 推奨と呼ばれます)

  • セグメント

例えば、プロジェクト ID が のプロジェクトのポリシーステートメントを作成するには810c7aab86d42fb2b56c8c966example、次の を使用しますARN。

"Resource": "arn:aws:mobiletargeting:us-east-1:123456789012:apps/810c7aab86d42fb2b56c8c966example"

特定のアカウントに属するすべてのプロジェクトを指定するには、ワイルドカード (*) を使用します。

"Resource": "arn:aws:mobiletargeting:us-east-1:123456789012:apps/*"

リソースを作成するための特定のアクションなど、一部の Amazon Pinpoint アクションは、特定のリソースに対して実行できません。このような場合は、ワイルドカード (*) を使用する必要があります。

"Resource": "*"

IAM ポリシーでは、次のタイプの Amazon Pinpoint リソースSMSと Voice リソースARNsに を指定することもできます。

  • 設定セット

  • オプトアウトリスト

  • 電話番号

  • プール

  • 送信者 ID

例えば、電話番号 ID を持つ電話番号のポリシーステートメントを作成するには、次の phone-12345678901234567890123456789012を使用しますARN。

"Resource": "arn:aws:sms-voice:us-east-1:123456789012:phone-number/phone-12345678901234567890123456789012"

特定のアカウントに属するすべての電話番号を指定するには、電話番号 ID の代わりにワイルドカード (*) を使用します。

"Resource": "arn:aws:sms-voice:us-east-1:123456789012:phone-number/*"

一部の Amazon Pinpoint SMSおよび Voice アクションは、支出制限などのアカウントレベルの設定を管理するためのアクションなど、特定のリソースでは実行されません。このような場合は、ワイルドカード (*) を使用する必要があります。

"Resource": "*"

一部の Amazon Pinpoint APIアクションには、複数のリソースが含まれます。例えば、TagResource アクションは複数のプロジェクトにタグを追加できます。1 つのステートメントで複数のリソースを指定するには、 をカンマARNsで区切ります。

"Resource": [ "resource1", "resource2"

Amazon Pinpoint リソースタイプとその のリストを確認するにはARNs、IAM「 ユーザーガイド」のAmazon Pinpoint で定義されるリソース」を参照してください。各リソースタイプの で指定できるアクションについては、 IAM ユーザーガイドARNのAmazon Pinpoint で定義されるアクション」を参照してください。

条件キー

管理者はポリシーを使用して AWS JSON、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルが、どのリソースに対してどのような条件下でアクションを実行できるかということです。

Condition 要素 (または Condition ブロック) を使用すると、ステートメントが有効な条件を指定できます。Condition 要素はオプションです。イコールや未満などの 条件演算子 を使用して条件式を作成することで、ポリシーの条件とリクエスト内の値を一致させることができます。

1 つのステートメントに複数の Condition 要素を指定する場合、または 1 つの Condition 要素に複数のキーを指定する場合、 AWS では AND 論理演算子を使用してそれらを評価します。1 つの条件キーに複数の値を指定すると、 は論理ORオペレーションを使用して条件 AWS を評価します。ステートメントの権限が付与される前にすべての条件が満たされる必要があります。

条件を指定する際にプレースホルダー変数も使用できます。例えば、IAMユーザー名でタグ付けされている場合にのみ、リソースにアクセスするアクセス許可をIAMユーザーに付与できます。詳細については、「 ユーザーガイド」のIAM「ポリシー要素: 変数とタグ」を参照してください。 IAM

AWS は、グローバル条件キーとサービス固有の条件キーをサポートします。すべての AWS グローバル条件キーを確認するには、 ユーザーガイドのAWS 「グローバル条件コンテキストキー」を参照してください。 IAM

Amazon Pinpoint は一連の独自の条件キーを定義し、一部のグローバル条件キーもサポートします。すべての AWS グローバル条件キーのリストを確認するには、 IAM ユーザーガイドAWS 「グローバル条件コンテキストキー」を参照してください。Amazon Pinpoint 条件キーのリストを確認するには、 IAM ユーザーガイドAmazon Pinpoint の条件キー」を参照してください。条件キーを使用できるアクションとリソースについては、IAM「 ユーザーガイド」のAmazon Pinpoint で定義されるアクション」を参照してください。

Amazon Pinpoint でのアイデンティティベースのポリシーの例は、「Amazon Pinpoint のアイデンティティベースポリシーの例」でご確認ください。

Amazon Pinpoint リソースベースのアクセス許可ポリシー

リソースベースのアクセス許可ポリシーは、指定されたプリンシパルが Amazon Pinpoint リソースに対して実行できるアクションと条件を指定するJSONポリシードキュメントです。Amazon Pinpoint は、キャンペーン、ジャーニー、メッセージテンプレート (テンプレート)、レコメンダーモデル (レコメンダー)、プロジェクト (アプリケーション)、セグメントに対するリソースベースのパーミッションポリシーをサポートしています。

Amazon Pinpoint リソースベースのポリシーの例を表示するには、「Amazon Pinpoint のアイデンティティベースポリシーの例」を参照してください。

Amazon Pinpoint タグに基づいた認可

タグは、特定のタイプの Amazon Pinpoint リソースに関連付けたり、Amazon Pinpoint へのリクエストに渡したりすることができます。タグに基づいてアクセスを管理するには、aws:ResourceTag/${TagKey}aws:RequestTag/${TagKey}、または aws:TagKeys の条件キーを使用して、ポリシーの 条件要素でタグ情報を提供します。

IAM ポリシーの例を含む Amazon Pinpoint リソースのタグ付けについては、「」を参照してくださいAmazon Pinpoint リソースタグの管理

Amazon Pinpoint IAMロール

IAM ロールは、特定のアクセス許可を持つ AWS アカウント内のエンティティです。

Amazon Pinpoint での一時的な認証情報の使用

一時的な認証情報を使用して、フェデレーションでサインインしたり、IAMロールを引き受けたり、クロスアカウントロールを引き受けたりすることができます。AssumeRole や などの (AWS STS) APIオペレーションを呼び出す AWS Security Token Service ことで、一時的なセキュリティ認証情報を取得しますGetFederationToken

Amazon Pinpoint は、一時的な認証情報の使用をサポートします。

サービスリンクロール

サービスにリンクされたロールを使用すると、 AWS サービスが他のサービスのリソースにアクセスして、ユーザーに代わってアクションを実行できます。サービスにリンクされたロールはIAMアカウントに表示され、 サービスによって所有されます。IAM 管理者は、サービスにリンクされたロールのアクセス許可を表示できますが、編集することはできません。

Amazon Pinpoint は、サービスにリンクされたロールを使用しません。

サービスロール

この機能により、ユーザーに代わってサービスがサービスロールを引き受けることが許可されます。このロールにより、サービスがお客様に代わって他のサービスのリソースにアクセスし、アクションを完了することが許可されます。サービスロールはIAMアカウントに表示され、アカウントによって所有されます。つまり、IAM管理者はこのロールのアクセス許可を変更できます。ただし、それにより、サービスの機能が損なわれる場合があります。

Amazon Pinpoint は、サービスロールの使用をサポートしています。