우리 조직의 개인이 Amazon에 액세스하려고 하면 “외부 로그인이 승인되지 않았습니다.” 라는 메시지가 표시됩니다. QuickSight - 아마존 QuickSight

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

우리 조직의 개인이 Amazon에 액세스하려고 하면 “외부 로그인이 승인되지 않았습니다.” 라는 메시지가 표시됩니다. QuickSight

   대상 사용자: Amazon QuickSight 관리자 

조직의 개인이 를 QuickSight 사용하여 Amazon에 페더레이션하는 AssumeRoleWithWebIdentity경우 단일 역할 기반 사용자를 단일 외부 로그인에 QuickSight 매핑합니다. 경우에 따라 해당 개인은 원래 매핑된 사용자와 다른 외부 로그인(예: Amazon Cognito)을 통해 인증될 수 있습니다. 그럴 경우 해당 사용자는 액세스할 QuickSight 수 없고 다음과 같은 예상치 못한 오류 메시지가 표시됩니다.

페더레이션에 사용되는 외부 로그인은 QuickSight 사용자에게 허용되지 않습니다.

이 문제를 해결하는 방법을 보려면, 다음 섹션을 참조하세요.

왜 이런 일이 발생하나요?

간소화된 Amazon Cognito 흐름을 사용하고 있습니다.

Amazon Cognito를 사용하여 페더레이션하는 경우 싱글 사인온 (IAM ID 센터) 설정에서 CognitoIdentityCredentials API 작업을 사용하여 역할을 수임할 수 있습니다. QuickSight QuickSight 이 방법은 Amazon Cognito 자격 증명 풀의 모든 사용자를 단일 QuickSight 사용자에게 매핑하며 Amazon에서는 지원하지 않습니다. QuickSight

대신 역할 세션 이름을 지정하는 AssumeRoleWithWebIdentity API 작업을 사용하는 것이 좋습니다.

인증되지 않은 Amazon Cognito 사용자를 사용하고 있는 경우

Amazon Cognito IAM 자격 증명 센터는 Amazon Cognito 자격 증명 풀의 인증되지 않은 사용자를 위해 설정됩니다. 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 자격 증명 센터가 인증된 사용자를 사용하는지 확인하십시오.

동일한 사용자 이름 속성을 가진 Amazon Cognito 사용자를 삭제하고 다시 생성했습니다.

이 경우 Amazon 사용자에 매핑된 관련 Amazon Cognito 사용자가 삭제되고 다시 QuickSight 생성되었습니다. 새로 생성된 Amazon Cognito 사용자는 기본 주제가 다릅니다. 역할 세션 이름이 사용자에게 매핑되는 방식에 따라 세션 이름은 동일한 역할 기반 QuickSight 사용자에 해당할 수 있습니다. QuickSight

API 작업을 사용하여 UpdateUser 업데이트된 Amazon Cognito QuickSight 사용자 주제에 사용자를 다시 매핑하는 것이 좋습니다. 자세한 내용은 다음 UpdateUser API 예제를 참조하십시오.

서로 다른 AWS 계정 여러 Amazon Cognito 사용자 풀을 하나의 자격 증명 풀에 매핑하고 있으며 다음과 같이 QuickSight

서로 다른 여러 Amazon Cognito 사용자 풀을 하나의 자격 증명 AWS 계정 풀에 매핑하며 Amazon에서는 지원하지 QuickSight 않습니다. 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

RegisterUserCLI에서의 사용에 대해 자세히 알아보려면 Amazon QuickSight API RegisterUser레퍼런스를 참조하십시오.

사용자의 외부 로그인 정보를 확인하는 DescribeUser 데 사용합니다.

사용자가 외부 로그인 공급자의 역할 기반 페더레이션 사용자인 경우, 다음 코드와 같이 DescribeUser API 작업을 사용하여 해당 사용자의 외부 로그인 정보를 확인합니다.

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" }

DescribeUserCLI에서의 사용에 대해 자세히 알아보려면 Amazon QuickSight API DescribeUser레퍼런스를 참조하십시오.

사용자의 외부 로그인 정보를 UpdateUser 업데이트하는 데 사용합니다.

DescribeUser 결과에서 사용자를 위해 저장한 외부 로그인 정보가 올바르지 않거나 외부 로그인 정보가 누락되는 경우가 있을 수 있습니다. 그렇다면 UpdateUser API 작업을 사용해 업데이트할 수 있습니다. 다음 예시를 사용하세요.

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

UpdateUserCLI에서의 사용에 대해 자세히 알아보려면 Amazon QuickSight API UpdateUser참조의 내용을 참조하십시오.