Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Les membres de mon organisation reçoivent un message « La connexion externe n'est pas autorisée » lorsqu'ils essaient d'accéder à Amazon QuickSight
Public cible : QuickSight administrateurs Amazon |
Lorsqu'un membre de votre organisation se connecte à Amazon à l' QuickSight aide de AssumeRoleWithWebIdentity, QuickSight mappe un seul utilisateur basé sur des rôles à un seul identifiant externe. Dans certains cas, cette personne peut être authentifiée au moyen d'un identifiant externe (tel qu'Amazon Cognito) différent de celui de l'utilisateur mappé à l'origine. Si tel est le cas, ils ne peuvent pas accéder au message d'erreur inattendu suivant QuickSight et l'obtenir.
L'identifiant externe utilisé pour la fédération n'est pas autorisé pour l' QuickSight utilisateur.
Pour savoir comment résoudre ce problème, consultez les sections suivantes :
Pourquoi ce problème se produit-il ?
Vous utilisez un flux Amazon Cognito simplifié
Si vous utilisez Amazon Cognito pour vous fédérer QuickSight, la configuration de l'authentification unique (IAM Identity Center) peut utiliser l'opération d'CognitoIdentityCredentials
API pour assumer le rôle. QuickSight Cette méthode associe tous les utilisateurs du pool d'identités Amazon Cognito à un seul QuickSight utilisateur et n'est pas prise en charge par Amazon. QuickSight
Nous vous recommandons d'utiliser plutôt l'opération d'API AssumeRoleWithWebIdentity
, qui spécifie le nom de session de rôle.
Vous utilisez des utilisateurs Amazon Cognito non authentifiés
Amazon Cognito IAM Identity Center est configuré pour les utilisateurs non authentifiés dans la réserve d'identités Amazon Cognito. La politique de confiance QuickSight dans les rôles est configurée comme dans l'exemple suivant.
{ "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" } } } ] }
Cette configuration permet à un utilisateur temporaire d'Amazon Cognito d'assumer une session de rôle mappée à un utilisateur unique. QuickSight Les identités non authentifiées étant temporaires, elles ne sont pas prises en charge par. QuickSight
Nous vous recommandons de ne pas utiliser cette configuration, qui n'est pas prise en charge par Amazon QuickSight. Pour Amazon QuickSight, assurez-vous que le centre d'identité Amazon Cognito IAM utilise des utilisateurs authentifiés.
Vous avez supprimé et recréé un utilisateur Amazon Cognito avec les mêmes attributs de nom d'utilisateur
Dans ce cas, l'utilisateur Amazon Cognito associé mappé à l' QuickSight utilisateur Amazon a été supprimé et recréé. L'utilisateur Amazon Cognito nouvellement créé dispose d'un autre sujet sous-jacent. Selon la façon dont le nom de session du rôle est mappé à l'QuickSight utilisateur, le nom de session peut correspondre au même utilisateur basé sur le QuickSight rôle.
Nous vous recommandons de remapper l' QuickSight utilisateur au sujet utilisateur Amazon Cognito mis à jour à l'aide UpdateUser
de l'opération API. Pour plus d'informations, consultez l'exemple UpdateUser d'API suivant.
Vous mappez plusieurs groupes d'utilisateurs Amazon Cognito différents Comptes AWS dans un seul groupe d'identités et avec QuickSight
Le mappage de plusieurs groupes d'utilisateurs Amazon Cognito dans différents groupes Comptes AWS d'identités QuickSight n'est pas pris en charge par Amazon. QuickSight
Comment résoudre ce problème ?
Vous pouvez utiliser les opérations d'API QuickSight publiques pour mettre à jour les informations de connexion externes de vos utilisateurs. Utilisez les options suivantes pour savoir comment procéder.
RegisterUser À utiliser pour créer des utilisateurs avec des informations de connexion externes
Si le fournisseur de connexion externe est Amazon Cognito, utilisez le code d'interface de la ligne de commande suivant pour créer des utilisateurs.
aws quicksight register-user --aws-account-id
account-id
--namespacenamespace
--emailuser-email
--user-roleuser-role
--identity-type IAM --iam-arn arn:aws:iam::account-id
:role/cognito-associated-iam-role
--session-namecognito-username
--external-login-federation-provider-type COGNITO --external-login-idcognito-identity-id
--regionidentity-region
external-login-id
doit être l'ID d'identité de l'utilisateur Amazon Cognito. Le format est <identity-region>:<cognito-user-sub>
, comme illustré dans l'exemple suivant.
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
Si le fournisseur de connexion externe est un fournisseur OpenID Connect (OIDC) personnalisé, utilisez le code d'interface de la ligne de commande suivant pour créer des utilisateurs.
aws quicksight register-user --aws-account-id
account-id
--namespacenamespace
--emailuser-email
--user-roleuser-role
--identity-type IAM --iam-arn arn:aws:iam::account-id
:role/identity-provider-associated-iam-role
--session-nameidentity-username
--external-login-federation-provider-type CUSTOM_OIDC --custom-federation-provider-urlcustom-identity-provider-url
--external-login-idcustom-provider-identity-id
--regionidentity-region
Voici un exemple.
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
Pour en savoir plus sur l'utilisation RegisterUser
dans la CLI, consultez RegisterUserle Amazon QuickSight API Reference.
DescribeUser À utiliser pour vérifier les informations de connexion externes des utilisateurs
Si un utilisateur est un utilisateur fédéré basé sur des rôles provenant d'un fournisseur de connexion externe, utilisez l'opération d'API DescribeUser
pour vérifier ses informations de connexion externes, comme illustré dans le code suivant.
aws quicksight describe-user --aws-account-id
account-id
--namespacenamespace
--user-nameidentity-provider-associated-iam-role
/identity-username
--regionidentity-region
Voici un exemple.
aws quicksight describe-user --aws-account-id 111222333 --namespace default --user-name IdentityQuickSightRole/user --region us-west-2
Le résultat contient les champs d'informations de connexion externes, le cas échéant. Voici un exemple.
{ "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" }
Pour en savoir plus sur l'utilisation DescribeUser
dans la CLI, consultez DescribeUserle Amazon QuickSight API Reference.
UpdateUser À utiliser pour mettre à jour les informations de connexion externes des utilisateurs
Dans certains cas, il se peut que les informations de connexion externes enregistrées pour l'utilisateur à partir du résultat DescribeUser
ne soient pas correctes ou que les informations de connexion externes soient manquantes. Si tel est le cas, vous pouvez utiliser l'opération d'API UpdateUser
pour mettre à jour ces informations. Utilisez les exemples suivants.
Pour les utilisateurs Amazon Cognito, utilisez ce qui suit.
aws quicksight update-user --aws-account-id
account-id
--namespacenamespace
--user-namecognito-associated-iam-role
/cognito-username
--emailuser-email
--roleuser-role
--external-login-federation-provider-type COGNITO --external-login-idcognito-identity-id
--regionidentity-region
Voici un exemple.
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
Pour les utilisateurs de fournisseurs OIDC personnalisés, utilisez ce qui suit.
aws quicksight update-user --aws-account-id
account-id
--namespacenamespace
--user-nameidentity-provider-associated-iam-role
/identity-username
--emailuser-email
--roleuser-role
--external-login-federation-provider-type CUSTOM_OIDC --custom-federation-provider-urlcustom-identity-provider-url
--external-login-idcustom-provider-identity-id
--regionidentity-region
Voici un exemple.
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
Si vous souhaitez supprimer les informations de connexion externes de l'utilisateur, utilisez NONE
external login federation provider type
. Utilisez la commande de l'interface de la ligne de commande suivante pour supprimer les informations de connexion externes.
aws quicksight update-user --aws-account-id
account-id
--namespacenamespace
--user-nameidentity-provider-associated-iam-role
/identity-username
--emailuser-email
--roleuser-role
--external-login-federation-provider-type NONE --regionidentity-region
Voici un exemple.
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
Pour en savoir plus sur l'utilisation UpdateUser
dans la CLI, consultez le UpdateUsermanuel Amazon QuickSight API Reference.