Amazon Cognito のサービスリンクロールの使用 - Amazon Cognito

Amazon Cognito のサービスリンクロールの使用

Amazon Cognito は、AWS Identity and Access Management (IAM) サービスリンクロールを使用しています。サービスリンクロールは、Amazon Cognito に直接リンクされた一意の IAM ロールタイプです。サービスリンクロールは Amazon Cognito によって事前に定義されており、サービスがユーザーに代わって AWS のその他サービスを呼び出すために必要なすべての許可が含まれています。

サービスリンクロールでは、必要な許可を手動で追加する必要がないため、Amazon Cognito の設定が簡単になります。Amazon Cognito は、そのサービスリンクロールの許可を定義します。別途定義されている場合を除き、Amazon Cognito しかそのロールを引き受けることができません。定義される許可は、信頼ポリシーと許可ポリシーに含まれており、その許可ポリシーを他の IAM エンティティにアタッチすることはできません。

サービスリンクロールを削除するには、まずその関連リソースを削除します。これは、Amazon Cognito リソースを保護します。リソースにアクセスするための許可を誤って削除できなくなくなるからです。

サービスリンクロールをサポートする他のサービスについては、「IAM と連携する AWS のサービス」を参照して、サービスリンクロール列がはいになっているサービスを探してください。サービスにリンクされたロールに関するドキュメントをサービスで表示するには、[はい] リンクを選択します。

Amazon Cognito のサービスリンクロール許可

Amazon Cognito は、以下のサービスリンクロールを使用します。

  • AmazonCognitoIdpEmailService – Amazon Cognito のユーザープールサービスが E メールの送信に Amazon SES アイデンティティを使用できるようにします。

  • AmazonCognitoIDP – Amazon Cognito のユーザープールが、Amazon Pinpoint プロジェクトのイベントを発行し、エンドポイントを設定できるようにします。

AmazonCognitoIdpEmailService サービスリンクロールは、ロールの引き受けについて以下のサービスを信頼します。

  • email.cognito-idp.amazonaws.com

このロールの許可ポリシーは、Amazon Cognito が指定されたリソースで以下のアクションを実行できるようにします。

AmazonCognitoidpEmailService に許可されているアクション

  • アクション: ses:SendEmail および ses:SendRawEmail

  • リソース: *

このポリシーは、Amazon Cognito が指定されたリソースで以下のアクションを完了することを拒否します。

拒否されるアクション

  • アクション: ses:List*

  • リソース: *

これらの許可を使用すると、Amazon Cognito は、ユーザーへの E メールの送信に Amazon SES で検証済みの E メールアドレスのみを使用することができます。Amazon Cognito は、ユーザーがユーザープールのクライアントアプリで特定のアクション (サインアップやパスワードのリセットなど) を実行するときに、ユーザーに E メールを送信します。

IAM エンティティ (ユーザー、グループ、ロールなど) がサービスリンクロールの作成、編集、削除を行うことを許可する許可を設定する必要があります。詳細については、IAM ユーザーガイドの「サービスリンクロールの許可」を参照してください。

AmazonCognitoIdp

AmazonCognitoIdp サービスリンクロールは、ロールの引き受けについて以下のサービスを信頼します。

  • email.cognito-idp.amazonaws.com

このロールの許可ポリシーは、Amazon Cognito が指定されたリソースで以下のアクションを実行できるようにします。

AmazonCognitoIDP に許可されるアクション

  • アクション: cognito-idp:Describe

  • リソース: *

この許可を使用すると、Amazon Cognito はユーザーに代わって Describe Amazon Cognito API オペレーションを呼び出すことができます。

注記

createUserPoolClientupdateUserPoolClient を使用して Amazon Cognito を Amazon Pinpoint に統合すると、リソースのアクセス許可がインラインポリシーとして SLR に追加されます。インラインポリシーは、mobiletargeting:UpdateEndpoint および mobiletargeting:PutEvents 許可を提供します。これらの許可は、Amazon Cognito が、Cognito に統合された Pinpoint プロジェクトのためにイベントを発行し、エンドポイントを設定できるようにします。

Amazon Cognito のサービスリンクロールの作成

サービスリンクロールを手動で作成する必要はありません。AWS Management Console、AWS CLI、または Amazon Cognito API で、Amazon SES 設定を使用して E メール送信を処理するようにユーザープールを設定すると、Amazon Cognito がサービスリンクロールを作成します。

このサービスリンクロールを削除した後で再度作成する必要が生じた場合は、同じ方法でアカウントにロールを再作成できます。Amazon SES 設定を使用してメール配信を処理するようにユーザープールを設定すると、Amazon Cognito がサービスリンクロールをもう一度作成します。

Amazon Cognito がこのロールを作成する前に、ユーザープールのセットアップに使用する IAM 許可に iam:CreateServiceLinkedRole アクションを含める必要があります。IAM での許可の更新に関する詳細については、IAM ユーザーガイドの「IAM ユーザーの許可の変更」を参照してください。

Amazon Cognito のサービスリンクロールの編集

Amazon Cognito では、ユーザーが AmazonCognitoIdpEmailService または AmazonCognitoIdpEmailService サービスリンクロールを編集することはできません。サービスリンクロールを作成した後は、さまざまなエンティティがロールを参照する可能性があることから、ロール名を変更することはできません。ただし、IAM を使用してロールの説明を編集することは可能です。詳細については、IAM ユーザーガイドの「サービスにリンクされたロールの編集」を参照してください。

Amazon Cognito のサービスリンクロールの削除

サービスリンクロールを必要とする機能またはサービスが不要になった場合には、そのロールを削除することをお勧めします。そうすることで、積極的にモニタリングまたは保守されていない未使用のエンティティを排除できます。AmazonCognitoIdpEmailService または AmazonCognitoIdpEmailServiceサービスリンクロールを削除する前に、このロールを使用する各ユーザープールに対して以下のいずれかを実行する必要があります。

  • ユーザープールを削除する。

  • ユーザープールの E メール設定を更新して、デフォルトの E メール機能を使用する。デフォルト設定では、サービスリンクロールが使用されません。

ロールを使用するユーザープールが含まれている AWS リージョンごとに、これらのアクションを実行してください。

注記

リソースを削除しようとするときに Amazon Cognito サービスがロールを使用している場合は、削除が失敗する可能性があります。失敗した場合は、数分待ってから操作を再試行してください。

Amazon Cognito ユーザープールを削除する

  1. AWS Management Consoleにサインインし、Amazon Cognito コンソール (https://console.aws.amazon.com/cognito) を開きます。

  2. [Manage User Pools] (ユーザープールの管理) をクリックします。

  3. [Your User Pools] (ユーザープール) ページで、削除するユーザープールを選択します。

  4. [Delete pool] (プールの削除) をクリックします。

  5. [Delete user pool] (ユーザープールの削除) ウィンドウで「delete」と入力し、[Delete pool] (プールの削除) をクリックします。

デフォルトの E メール機能を使用するために Amazon Cognito ユーザープールを更新する

  1. AWS Management Consoleにサインインし、Amazon Cognito コンソール (https://console.aws.amazon.com/cognito) を開きます。

  2. [Manage User Pools] (ユーザープールの管理) をクリックします。

  3. [Your User Pools] (ユーザープール) ページで、更新するユーザープールを選択します。

  4. 左側のナビゲーションメニューで [Message customizations] (メッセージのカスタマイズ) をクリックします。

  5. [Do you want to send emails through your Amazon SES Configuration?] (Amazon SES の設定を通じて E メールを送信しますか?) で [No - Use Cognito] (いいえ - Cognito を使用します) (デフォルト) を選択します。

  6. E メールアカウントオプションの設定を終了したら、[Save changes] (変更の保存) をクリックします。

IAM を使用してサービスリンクロールを手動で削除する

IAM コンソール、AWS CLI、または AWS API を使用して、AmazonCognitoIdpEmailService または AmazonCognitoIdpEmailService サービスリンクロールを削除します。詳細については、IAM ユーザーガイドの「サービスにリンクされたロールの削除」を参照してください。

Amazon Cognito サービスリンクロールがサポートされるリージョン

Amazon Cognito は、このサービスを利用できるすべてのリージョンでサービスリンクロールの使用をサポートします。詳細については、「AWS リージョンとエンドポイント」を参照してください。