翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Cognito で IAM が機能する仕組み
IAM を使用して Amazon Cognito へのアクセスを管理する前に、Amazon Cognito で利用できる IAM の機能を確認します。
IAM の機能 | Amazon Cognito サポート |
---|---|
はい |
|
いいえ |
|
はい |
|
あり |
|
Yes |
|
いいえ |
|
部分的 |
|
はい |
|
いいえ |
|
はい |
|
あり |
Amazon Cognito およびその他の AWS のサービスがほとんどの IAM 機能と連携する方法の概要については、IAM ユーザーガイドのAWS 「IAM と連携する のサービス」を参照してください。
Amazon Cognito の ID ベースのポリシー
アイデンティティベースのポリシーのサポート: あり
アイデンティティベースポリシーは、IAM ユーザーグループ、ユーザーのグループ、ロールなど、アイデンティティにアタッチできる JSON 許可ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件をコントロールします。ID ベースのポリシーの作成方法については、「IAM ユーザーガイド」の「カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する」を参照してください。
IAM アイデンティティベースのポリシーでは、許可または拒否するアクションとリソース、およびアクションを許可または拒否する条件を指定できます。プリンシパルは、それが添付されているユーザーまたはロールに適用されるため、アイデンティティベースのポリシーでは指定できません。JSON ポリシーで使用できるすべての要素について学ぶには、「IAM ユーザーガイド」の「IAM JSON ポリシーの要素のリファレンス」を参照してください。
Amazon Cognito の ID ベースのポリシー例
Amazon Cognito の ID ベースのポリシー例については、「Amazon Cognito の ID ベースのポリシー例」を参照してください。
Amazon Cognito 内のリソースベースのポリシー
リソースベースのポリシーのサポート: なし
リソースベースのポリシーは、リソースに添付する JSON ポリシードキュメントです。リソースベースのポリシーには例として、IAM ロールの信頼ポリシーや Amazon S3 バケットポリシーがあげられます。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスを制御できます。ポリシーがアタッチされているリソースの場合、指定されたプリンシパルがそのリソースに対して実行できるアクションと条件は、ポリシーによって定義されます。リソースベースのポリシーでは、プリンシパルを指定する必要があります。プリンシパルには、アカウント、ユーザー、ロール、フェデレーティッドユーザー、または を含めることができます AWS のサービス。
クロスアカウントアクセスを有効にするには、アカウント全体、または別のアカウントの IAM エンティティをリソースベースのポリシーのプリンシパルとして指定します。リソースベースのポリシーにクロスアカウントのプリンシパルを追加しても、信頼関係は半分しか確立されない点に注意してください。プリンシパルとリソースが異なる場合 AWS アカウント、信頼されたアカウントの IAM 管理者は、プリンシパルエンティティ (ユーザーまたはロール) にリソースへのアクセス許可も付与する必要があります。IAM 管理者は、アイデンティティベースのポリシーをエンティティにアタッチすることで権限を付与します。ただし、リソースベースのポリシーで、同じアカウントのプリンシパルへのアクセス権が付与されている場合は、アイデンティティベースのポリシーをさらに付与する必要はありません。詳細については、「IAM ユーザーガイド」の「IAM でのクロスアカウントリソースアクセス」を参照してください。
Amazon Cognito のポリシーアクション
ポリシーアクションのサポート:あり
管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。
JSON ポリシーの Action
要素にはポリシー内のアクセスを許可または拒否するために使用できるアクションが記述されます。ポリシーアクションの名前は通常、関連付けられた AWS API オペレーションと同じです。一致する API オペレーションのない許可のみのアクションなど、いくつかの例外があります。また、ポリシーに複数のアクションが必要なオペレーションもあります。これらの追加アクションは依存アクションと呼ばれます。
このアクションは関連付けられたオペレーションを実行するためのアクセス許可を付与するポリシーで使用されます。
Amazon Cognito アクションのリストについては、「サービス認可リファレンス」の「Amazon Cognito ID で定義されるアクション」を参照してください。
Amazon Cognito のポリシーアクションでは、アクションの前に、次のプレフィックスを使用します。
cognito-identity
単一のステートメントで複数のアクションを指定するには、アクションをカンマで区切ります。
"Action": [ "cognito-identity:
action1
", "cognito-identity:action2
" ]
署名された API と署名されていない API
AWS 認証情報を使用して Amazon Cognito API リクエストに署名すると、 AWS Identity and Access Management (IAM) ポリシーで制限できます。 AWS
認証情報で署名する必要がある API リクエストには、サーバー側での AdminInitiateAuth
を使用したサインイン、および UpdateUserPool
などの Amazon Cognito リソースを作成、表示、または変更するアクションが含まれます。署名付き API リクエストの詳細については、AWS 「 API リクエストの署名」を参照してください。
Amazon Cognito は、一般公開するアプリケーション用のコンシューマー ID 製品であるため、次の署名されていない API にアクセスできます。アプリケーションは、ユーザーと見込みユーザーに代わってこれらの API リクエストを行います。一部の API (InitiateAuth
など) は、新しい認証セッションを開始するために、事前の認可を必要としません。一部の API (VerifySoftwareToken
など) は、アクセストークンやセッションキーを認可に使用して、既存の認証済みセッションを持つユーザーの MFA 設定を完了します。署名されていない、承認済みの Amazon Cognito ユーザープール API は、Amazon Cognito API リファレンスで示しているように、リクエスト構文での Session
または AccessToken
パラメータをサポートしています。署名されていない Amazon Cognito アイデンティティ API は、Amazon Cognito フェデレーティッドアイデンティティ API リファレンスで示しているように、IdentityId
パラメータをサポートしています。
Amazon Cognito ユーザープール API オペレーションの認可モデルとロールの詳細については、「認可モデル別にグループ化された API オペレーションのリスト」を参照してください。
Amazon Cognito アイデンティティプール API オペレーション
-
GetId
-
GetOpenIdToken
-
GetCredentialsForIdentity
-
UnlinkIdentity
Amazon Cognito ユーザープール API オペレーション
-
AssociateSoftwareToken
-
ChangePassword
-
ConfirmDevice
-
ConfirmForgotPassword
-
ConfirmSignUp
-
DeleteUser
-
DeleteUserAttributes
-
ForgetDevice
-
ForgotPassword
-
GetDevice
-
GetUser
-
GetUserAttributeVerificationCode
-
GlobalSignOut
-
InitiateAuth
-
ListDevices
-
ResendConfirmationCode
-
RespondToAuthChallenge
-
RevokeToken
-
SetUserMFAPreference
-
SetUserSettings
-
SignUp
-
UpdateAuthEventFeedback
-
UpdateDeviceStatus
-
UpdateUserAttributes
-
VerifySoftwareToken
-
VerifyUserAttribute
Amazon Cognito の ID ベースのポリシー例については、「Amazon Cognito の ID ベースのポリシー例」を参照してください。
Amazon Cognito のポリシーリソース
ポリシーリソースのサポート: あり
管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。
Resource
JSON ポリシー要素はアクションが適用されるオブジェクトを指定します。ステートメントにはResource
または NotResource
要素を含める必要があります。ベストプラクティスとして、Amazon リソースネーム (ARN) を使用してリソースを指定します。これは、リソースレベルの許可と呼ばれる特定のリソースタイプをサポートするアクションに対して実行できます。
操作のリスト化など、リソースレベルの許可をサポートしないアクションの場合は、ワイルドカード (*) を使用して、ステートメントがすべてのリソースに適用されることを示します。
"Resource": "*"
Amazon リソースネーム (ARN)
Amazon Cognito フェデレーティッド ID の ARN
Amazon Cognito ID プール (フェデレーティッド ID) では、以下の例にあるように、Amazon リソースネーム (ARN) 形式を使用して IAM ユーザーのアクセスを特定の ID プールに制限することができます。ARN の詳細については、「IAM 識別子」を参照してください。
arn:aws:cognito-identity:
REGION
:ACCOUNT_ID
:identitypool/IDENTITY_POOL_ID
Amazon Cognito Sync の ARN
Amazon Cognito Sync では、カスタマーがアイデンティティプール ID、アイデンティティ ID、およびデータセット名でアクセスを制限することもできます。
ID プールで動作する API の場合、サービス名が cognito-identity
ではなく cognito-sync
である場合を除いて、ID プールの ARN 形式が Amazon Cognito フェデレーティッド ID のものと同じになります。
arn:aws:cognito-sync:
REGION
:ACCOUNT_ID
:identitypool/IDENTITY_POOL_ID
RegisterDevice
などの単一のアイデンティティで動作する API については、以下の ARN 形式で個々のアイデンティティを参照できます。
arn:aws:cognito-sync:
REGION
:ACCOUNT_ID
:identitypool/IDENTITY_POOL_ID
/identity/IDENTITY_ID
データセットで動作する API (例えば、UpdateRecords
および ListRecords
) の場合、次の ARN 形式を使用して個別のデータセットを参照できます。
arn:aws:cognito-sync:
REGION
:ACCOUNT_ID
:identitypool/IDENTITY_POOL_ID
/identity/IDENTITY_ID
/dataset/DATASET_NAME
Amazon Cognito ユーザープールの ARN
Amazon Cognito ユーザープールでは、以下の ARN 形式を使用して、ユーザーのアクセスを特定のユーザープールに制限することが可能です。
arn:aws:cognito-idp:
REGION
:ACCOUNT_ID
:userpool/USER_POOL_ID
Amazon Cognito リソースのタイプと ARN のリストについては、「サービス認可リファレンス」の「Amazon Cognito ID で定義されるリソースタイプ」を参照してください。各リソースの ARN を指定できるアクションについては、「Amazon Cognito で定義されるアクション」を参照してください。
Amazon Cognito の ID ベースのポリシー例については、「Amazon Cognito の ID ベースのポリシー例」を参照してください。
Amazon Cognito のポリシー条件キー
サービス固有のポリシー条件キーのサポート: あり
管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。
Condition
要素 (または Condition
ブロック) を使用すると、ステートメントが有効な条件を指定できます。Condition
要素はオプションです。イコールや未満などの 条件演算子 を使用して条件式を作成して、ポリシーの条件とリクエスト内の値を一致させることができます。
1 つのステートメントに複数の Condition
要素を指定する場合、または 1 つの Condition
要素に複数のキーを指定する場合、 AWS では AND
論理演算子を使用してそれらを評価します。1 つの条件キーに複数の値を指定すると、 は論理OR
オペレーションを使用して条件 AWS を評価します。ステートメントの権限が付与される前にすべての条件が満たされる必要があります。
条件を指定する際にプレースホルダー変数も使用できます。例えば IAM ユーザーに、IAM ユーザー名がタグ付けされている場合のみリソースにアクセスできる権限を付与することができます。詳細については、「IAM ユーザーガイド」の「IAM ポリシーの要素: 変数およびタグ」を参照してください。
AWS は、グローバル条件キーとサービス固有の条件キーをサポートしています。すべての AWS グローバル条件キーを確認するには、「IAM ユーザーガイド」のAWS 「グローバル条件コンテキストキー」を参照してください。
Amazon Cognito の条件キーのリストについては、「サービス認可リファレンス」の「Amazon Cognito ID の条件キー」を参照してください。条件キーを使用できるアクションとリソースについては、「Amazon Cognito で定義されるアクション」を参照してください。
Amazon Cognito の ID ベースのポリシー例については、「Amazon Cognito の ID ベースのポリシー例」を参照してください。
Amazon Cognito のアクセスコントロールリスト (ACL)
ACL のサポート: なし
アクセスコントロールリスト (ACL) は、どのプリンシパル (アカウントメンバー、ユーザー、またはロール) がリソースにアクセスするための許可を持つかを制御します。ACL はリソースベースのポリシーに似ていますが、JSON ポリシードキュメント形式は使用しません。
Amazon Cognito の属性ベースのアクセス制御 (ABAC)
ABAC (ポリシー内のタグ) のサポート: 一部
属性ベースのアクセス制御 (ABAC) は、属性に基づいてアクセス許可を定義する認可戦略です。では AWS、これらの属性はタグと呼ばれます。タグは、IAM エンティティ (ユーザーまたはロール) および多くの AWS リソースにアタッチできます。エンティティとリソースのタグ付けは、ABAC の最初の手順です。その後、プリンシパルのタグがアクセスしようとしているリソースのタグと一致した場合にオペレーションを許可するように ABAC ポリシーをします。
ABAC は、急成長する環境やポリシー管理が煩雑になる状況で役立ちます。
タグに基づいてアクセスを管理するには、aws:ResourceTag/
、key-name
aws:RequestTag/
、または key-name
aws:TagKeys
の条件キーを使用して、ポリシーの 条件要素でタグ情報を提供します。
サービスがすべてのリソースタイプに対して 3 つの条件キーすべてをサポートする場合、そのサービスの値はありです。サービスが一部のリソースタイプに対してのみ 3 つの条件キーのすべてをサポートする場合、値は「部分的」になります。
ABAC の詳細については、「IAM ユーザーガイド」の「ABAC 認可でアクセス許可を定義する」を参照してください。ABAC をセットアップする手順を説明するチュートリアルについては、「IAM ユーザーガイド」の「属性ベースのアクセスコントロール (ABAC) を使用する」を参照してください。
Amazon Cognito での一時的な認証情報の使用
一時的な認証情報のサポート: あり
一部の AWS のサービス は、一時的な認証情報を使用してサインインすると機能しません。一時的な認証情報 AWS のサービス を使用する場合などの詳細については、IAM ユーザーガイドAWS のサービス の「IAM と連携する 」を参照してください。
ユーザー名とパスワード以外の AWS Management Console 方法で にサインインする場合は、一時的な認証情報を使用します。たとえば、会社のシングルサインオン (SSO) リンク AWS を使用して にアクセスすると、そのプロセスによって一時的な認証情報が自動的に作成されます。また、ユーザーとしてコンソールにサインインしてからロールを切り替える場合も、一時的な認証情報が自動的に作成されます。ロールの切り替えに関する詳細については、「IAM ユーザーガイド」の「ユーザーから IAM ロールに切り替える (コンソール)」を参照してください。
一時的な認証情報は、 AWS CLI または AWS API を使用して手動で作成できます。その後、これらの一時的な認証情報を使用してアクセスすることができます AWS。長期的なアクセスキーを使用する代わりに、一時的な認証情報を動的に生成 AWS することをお勧めします。詳細については、「IAM の一時的セキュリティ認証情報」を参照してください。
Amazon Cognito のクロスサービスプリンシパル許可
転送アクセスセッション (FAS) のサポート: なし
IAM ユーザーまたはロールを使用して でアクションを実行すると AWS、プリンシパルと見なされます。一部のサービスを使用する際に、アクションを実行することで、別のサービスの別のアクションがトリガーされることがあります。FAS は、 を呼び出すプリンシパルのアクセス許可を AWS のサービス、ダウンストリームサービス AWS のサービス へのリクエストをリクエストする と組み合わせて使用します。FAS リクエストは、サービスが他の AWS のサービス またはリソースとのやり取りを完了する必要があるリクエストを受け取った場合にのみ行われます。この場合、両方のアクションを実行するためのアクセス許可が必要です。FAS リクエストを行う際のポリシーの詳細については、「転送アクセスセッション」を参照してください。
Amazon Cognito のサービスロール
サービスロールのサポート: あり
サービスロールとは、サービスがユーザーに代わってアクションを実行するために引き受ける IAM ロールです。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、「IAM ユーザーガイド」の「AWS のサービスに許可を委任するロールを作成する」を参照してください。
Amazon Cognito のサービスロールの詳細については、「プッシュ同期を有効にする」と「プッシュ同期の実装」を参照してください。
警告
サービスロールのアクセス許可を変更すると、Amazon Cognito の機能が破損する可能性があります。Amazon Cognito が指示する場合以外は、サービスロールを編集しないでください。
Amazon Cognito のサービスにリンクされたロール
サービスリンクロールのサポート: あり
サービスにリンクされたロールは、 にリンクされたサービスロールの一種です AWS のサービス。サービスは、ユーザーに代わってアクションを実行するロールを引き受けることができます。サービスにリンクされたロールは に表示され AWS アカウント 、サービスによって所有されます。IAM 管理者は、サービスリンクロールのアクセス許可を表示できますが、編集することはできません。
Amazon Cognito のサービスにリンクされたロールの作成または管理の詳細については、「Amazon Cognito のサービスリンクロールの使用」を参照してください。