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

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

Amazon Cognito は、AWS Identity and Access Management (IAM) サービスリンクロールを使用しています。サービスにリンクされたロールは、AWS のサービス がロールを引き継ぐことを許可する信頼ポリシーを備えたユニークなタイプの IAM ロールです。サービスリンクロールは Amazon Cognito によって事前に定義されており、サービスがユーザーに代わって AWS のその他サービスを呼び出すために必要なすべての許可が含まれています。

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

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

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

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

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

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

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

AWSServiceRoleForAmazonCognitoIdpEmailService

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

  • email.cognito-idp.amazonaws.com

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

AWSServiceRoleForAmazonCognitoIdpEmailService に許可されるアクション:
  • アクション: ses:SendEmail および ses:SendRawEmail

  • リソース: *

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

拒否されるアクション
  • アクション: ses:List*

  • リソース: *

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

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

AWSServiceRoleForAmazonCognitoIdp

サービスにリンクされたロール AWSServiceRoleForAmazonCognitoIdp は、以下のサービスを信頼してロールを引き受けます。

  • email.cognito-idp.amazonaws.com

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

AWSServiceRoleForAmazonCognitoIdp に許可されるアクション
  • アクション: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 マネジメントコンソール、AWS CLI、または Amazon Cognito API で、Amazon SES 設定を使用して E メール送信を処理するようにユーザープールを設定すると、Amazon Cognito がサービスリンクロールを作成します。

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

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

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

AWS Identity and Access Managementで AmazonCognitoIdp または AmazonCognitoIdpEmailService サービスリンクロールを編集することはできません。サービスリンクロールを作成すると、多くのエンティティによってロールが参照される可能性があるため、ロール名を変更することはできません。ただし、IAM を使用したロール記述の編集はできます。詳細については、「IAM ユーザーガイド」の「サービスリンクロールの編集」を参照してください。

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

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

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

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

ロールを使用するユーザープールを使用してそれぞれの AWS リージョン でアクションを実行することを忘れないようにしてください。

注記

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

Amazon Cognito ユーザープールを削除する
  1. AWS マネジメントコンソールにサインインし、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 マネジメントコンソールにサインインし、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 (Default)] (いいえ - Cognito を使用します (デフォルト)) を選択します。

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

サービスリンクロールを IAM で手動削除するには

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

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

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