翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ロールの信頼とアクセス権限
これらのロールが異なる点は、それらの信頼関係です。未認証ロールの信頼ポリシーの例を次に示します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "us-east-1:12345678-corner-cafe-123456790ab" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "unauthenticated" } } } ] }
このポリシーは、cognito-identity.amazonaws.com
(OpenID Connect トークンの発行者) のフェデレーティッドユーザーに、このロールを引き受ける許可を与えます。さらに、ポリシーでは、ID プールに一致させるためにトークンの aud
が制限されます (この場合は ID プール ID)。最後に、このポリシーは、Amazon Cognito GetOpenIdToken
API オペレーションによって発行されたトークンの複数の値からなる amr
クレームの配列メンバーの 1 つが unauthenticated
値を含みます
Amazon Cognito がトークンを作成すると、トークンの amr
を unauthenticated
またはauthenticated
のいずれかに設定します。amr
が authenticated
の場合、トークンには、認証中に使用されるすべてのプロバイダーが含まれます。これにより、amr
条件を次のように変更するだけで、Facebook 経由でログインしたユーザーのみを信頼するロールを作成できます。
"ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "graph.facebook.com" }
ロールで信頼関係を変更するときや、ID プール間でロールの使用を試みるときは注意が必要です。ID プールを正しく信頼するようにロールが設定されていない場合は、STS の結果から次のような例外が表示されます。
AccessDenied -- Not authorized to perform sts:AssumeRoleWithWebIdentity
このメッセージが表示された場合は、ID プールと認証タイプに適切なロールがあることを確認します。