組織内の個人が Amazon にアクセスしようとすると、「外部ログインは許可されていません」というメッセージが表示されます。 QuickSight - Amazon QuickSight

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

組織内の個人が Amazon にアクセスしようとすると、「外部ログインは許可されていません」というメッセージが表示されます。 QuickSight

   対象者: Amazon QuickSight 管理者 

組織内の個人が QuickSight を使用して Amazon にフェデレーションしている場合AssumeRoleWithWebIdentity、 は単一のロールベースのユーザーを単一の外部ログインに QuickSight マッピングします。その個人が、最初にマッピングされたユーザーとは異なる外部ログイン (Amazon Cognito など) によって認証されることがあります。その場合、 にアクセスして、次の予期しないエラーメッセージ QuickSight を取得することはできません。

フェデレーションに使用される外部ログインは、 QuickSight ユーザーに対して許可されていません。

この問題のトラブルシューティングについては、次のセクションを参照してください。

この問題が発生する理由

単純化された Amazon Cognito フローを使用している

Amazon Cognito を使用して にフェデレーションする場合 QuickSight、シングルサインオン (IAM Identity Center) 設定で CognitoIdentityCredentialsAPIオペレーションを使用して QuickSight ロールを引き受けることができます。このメソッドは、Amazon Cognito ID プール内のすべてのユーザーを単一の QuickSight ユーザーにマッピングし、Amazon ではサポートされていません QuickSight。

代わりに、ロールセッション名を指定する AssumeRoleWithWebIdentityAPIオペレーションを使用することをお勧めします。

認証されていない Amazon Cognito ユーザーを使用しています。

Amazon Cognito IAM Identity Center は、Amazon Cognito ID プール内の認証されていないユーザー向けに設定されています。QuickSight ロールの信頼ポリシーは、次の例のように設定されます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "us-west-2:cognito-pool-id" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "unauthenticated" } } } ] }

この設定により、一時的な Amazon Cognito ユーザーは、一意のQuickSight ユーザーにマッピングされたロールセッションを引き受けることができます。認証されていない ID は一時的なものであるため、 ではサポートされていません QuickSight。

この設定は使用しないことをお勧めします。この設定は Amazon でサポートされていません QuickSight。Amazon の場合 QuickSight、Amazon Cognito IAM Identity Center が認証されたユーザーを使用していることを確認します。

同じユーザー名属性を持つ Amazon Cognito ユーザーを削除して再作成した

この場合、Amazon ユーザーにマッピングされている関連付けられた Amazon Cognito QuickSight ユーザーが削除され、再作成されました。新しく作成された Amazon Cognito ユーザーは、根底になるサブジェクトが異なります。ロールセッション名がQuickSight ユーザーにマッピングされる方法によっては、セッション名が同じ QuickSightロールベースのユーザーに対応する場合があります。

UpdateUser API オペレーションを使用して、更新された Amazon Cognito QuickSight ユーザーサブジェクトにユーザーを再マップすることをお勧めします。詳細については、次のUpdateUser API例を参照してください。

の複数の Amazon Cognito ユーザープール AWS アカウント を 1 つの ID プールと にマッピングしている QuickSight

の複数の Amazon Cognito ユーザープール AWS アカウント を 1 つの ID プールとは異なる にマッピングすることはQuickSight 、Amazon ではサポートされていません QuickSight。

どうすれば解決できますか?

QuickSight パブリックAPIオペレーションを使用して、ユーザーの外部ログイン情報を更新できます。次にその手順のオプションを説明します。

を使用して RegisterUser 外部ログイン情報を持つユーザーを作成する

外部ログインプロバイダーが Amazon Cognito の場合は、次のCLIコードを使用してユーザーを作成します。

aws quicksight register-user --aws-account-id account-id --namespace namespace --email user-email --user-role user-role --identity-type IAM --iam-arn arn:aws:iam::account-id:role/cognito-associated-iam-role --session-name cognito-username --external-login-federation-provider-type COGNITO --external-login-id cognito-identity-id --region identity-region

external-login-id は Amazon Cognito ユーザーの ID を指定します。<identity-region>:<cognito-user-sub> の形式は、次の例のようにします。

aws quicksight register-user --aws-account-id 111222333 --namespace default --email cognito-user@amazon.com --user-role ADMIN --identity-type IAM --iam-arn arn:aws:iam::111222333:role/CognitoQuickSightRole --session-name cognito-user --external-login-federation-provider-type COGNITO --external-login-id us-east-1:12345678-1234-1234-abc1-a1b1234567 --region us-east-1

外部ログインプロバイダーがカスタム OpenID Connect (OIDC) プロバイダーの場合は、次のCLIコードを使用してユーザーを作成します。

aws quicksight register-user --aws-account-id account-id --namespace namespace --email user-email --user-role user-role --identity-type IAM --iam-arn arn:aws:iam::account-id:role/identity-provider-associated-iam-role --session-name identity-username --external-login-federation-provider-type CUSTOM_OIDC --custom-federation-provider-url custom-identity-provider-url --external-login-id custom-provider-identity-id --region identity-region

次に例を示します。

aws quicksight register-user --aws-account-id 111222333 --namespace default --email identity-user@amazon.com --user-role ADMIN --identity-type IAM --iam-arn arn:aws:iam::111222333:role/CustomIdentityQuickSightRole --session-name identity-user --external-login-federation-provider-type CUSTOM_OIDC --custom-federation-provider-url idp.us-east-1.amazonaws.com/us-east-1_ABCDE --external-login-id 12345678-1234-1234-abc1-a1b1234567 --region us-east-1

RegisterUser での の使用の詳細についてはCLI、「Amazon QuickSight API リファレンスRegisterUser」の「」を参照してください。

を使用して DescribeUser ユーザーの外部ログイン情報を確認する

ユーザーが外部ログインプロバイダーのロールベースのフェデレーティッドユーザーである場合は、次のコードに示すように、 DescribeUserAPIオペレーションを使用して外部ログイン情報を確認します。

aws quicksight describe-user --aws-account-id account-id --namespace namespace --user-name identity-provider-associated-iam-role/identity-username --region identity-region

次に例を示します。

aws quicksight describe-user --aws-account-id 111222333 --namespace default --user-name IdentityQuickSightRole/user --region us-west-2

結果には、外部ログイン情報フィールドがある場合、そのフィールドが含まれます。次に例を示します。

{ "Status": 200, "User": { "Arn": "arn:aws:quicksight:us-east-1:111222333:user-default-IdentityQuickSightRole-user", "UserName": "IdentityQuickSightRole-user", "Email": "user@amazon.com", "Role": "ADMIN", "IdentityType": "IAM", "Active": true, "PrincipalId": "federated-iam-AROAAAAAAAAAAAAAA:user", "ExternalLoginFederationProviderType": "COGNITO", "ExternalLoginFederationProviderUrl": "cognito-identity.amazonaws.com", "ExternalLoginId": "us-east-1:123abc-1234-123a-b123-12345678a" }, "RequestId": "12345678-1234-1234-abc1-a1b1234567" }

DescribeUser での の使用の詳細についてはCLI、「Amazon QuickSight API リファレンスDescribeUser」の「」を参照してください。

を使用して UpdateUser ユーザーの外部ログイン情報を更新する

場合によっては、ユーザーの外部ログイン情報で DescribeUser からの情報が正しくない、または外部ログイン情報が見つからないことがあります。その場合は、 UpdateUserAPIオペレーションを使用して更新できます。以下の例を使用します。

Amazon Cognito ユーザーの場合、以下を使用します。

aws quicksight update-user --aws-account-id account-id --namespace namespace --user-name cognito-associated-iam-role/cognito-username --email user-email --role user-role --external-login-federation-provider-type COGNITO --external-login-id cognito-identity-id --region identity-region

次に例を示します。

aws quicksight update-user --aws-account-id 111222333 --namespace default --user-name CognitoQuickSightRole/cognito-user --email cognito-user@amazon.com --role ADMIN --external-login-federation-provider-type COGNITO --external-login-id us-east-1:12345678-1234-1234-abc1-a1b1234567 --region us-west-2

カスタムOIDCプロバイダーユーザーの場合は、以下を使用します。

aws quicksight update-user --aws-account-id account-id --namespace namespace --user-name identity-provider-associated-iam-role/identity-username --email user-email --role user-role --external-login-federation-provider-type CUSTOM_OIDC --custom-federation-provider-url custom-identity-provider-url --external-login-id custom-provider-identity-id --region identity-region

次に例を示します。

aws quicksight update-user --aws-account-id 111222333 --namespace default --user-name IdentityQuickSightRole/user --email user@amazon.com --role ADMIN --external-login-federation-provider-type CUSTOM_OIDC --custom-federation-provider-url idp.us-east-1.amazonaws.com/us-east-1_ABCDE --external-login-id 123abc-1234-123a-b123-12345678a --region us-west-2

ユーザーの外部ログイン情報を削除するには、NONE external login federation provider type を使用します。外部ログイン情報を削除するには、次のCLIコマンドを使用します。

aws quicksight update-user --aws-account-id account-id --namespace namespace --user-name identity-provider-associated-iam-role/identity-username --email user-email --role user-role --external-login-federation-provider-type NONE --region identity-region

次に例を示します。

aws quicksight update-user --aws-account-id 111222333 --namespace default --user-name CognitoQuickSightRole/cognito-user --email cognito-user@amazon.com --role ADMIN --external-login-federation-provider-type NONE --region us-west-2

UpdateUser での の使用の詳細についてはCLI、「Amazon QuickSight API リファレンスUpdateUser」の「」を参照してください。