OpenSearch Dashboards로 Amazon Cognito 인증 문제를 해결하려면 어떻게 해야 하나요?

4분 분량
0

Amazon OpenSearch Service 클러스터에서 Amazon Cognito 인증을 사용하여 OpenSearch Dashboards에 액세스하려고 합니다. 그러나 오류 또는 로그인 문제가 발생합니다.

해결 방법

OpenSearch Dasboards URL을 입력해도 로그인 페이지가 나타나지 않음

다음과 같은 이유로 OpenSearch Dashboards URL에서 Dashboards 대시보드로 리디렉션될 수 있습니다.

  • 로컬 컴퓨터의 공개 IP 주소로 Dashboards에 액세스하도록 허용하는 IP 기반 도메인 액세스 정책을 사용했습니다. 도메인 액세스 정책에 Amazon Cognito의 인증된 역할을 추가했는지 확인하세요. 인증된 역할을 추가하지 않으면 액세스 정책이 일반 정책처럼 작동합니다.
  • 요청은 허용된 AWS Identity Access Management(IAM) 사용자 또는 역할로 서명됩니다. Dashboards URL에 액세스할 때는 Dashboards 프록시 방식으로 요청에 서명하지 마세요.
  • OpenSearch Service 도메인은 Virtual Private Cloud(VPC)에 있고 도메인에 오픈 액세스 정책이 적용됩니다. 이 시나리오에서 모든 VPC 사용자는 Amazon Cognito 인증 없이 Dashboards와 도메인에 액세스할 수 있습니다.

참고: Amazon Cognito 인증은 필요하지 않습니다. Amazon Cognito 인증을 요구하려면 도메인 액세스 정책을 변경하세요. 자세한 내용은 액세스 정책 구성을 참조하세요.

OpenSearch Dashboards 로그인 페이지로 리디렉션되었지만 로그인할 수 없는 경우 Amazon Cognito가 잘못 구성된 것입니다. 이 문제를 해결하려면 다음과 같은 방법을 고려해 보세요.

“역할 누락" 오류

OpenSearch Service 도메인에서 OpenSearch Dashboards에 세분화된 액세스 제어(FGAC)를 설정한 경우 다음 오류가 발생할 수 있습니다.

"Missing Role
No roles available for this user, please contact your system administrator."

위 오류는 IAM 기본/고급 사용자와 부여된 Amazon Cognito 역할이 불일치하는 경우 발생합니다. (Amazon Cognito 자격 증명 풀에서 부여된 역할은 기본/고급 사용자에 지정한 IAM 역할과 일치해야 합니다.

기본/고급 사용자의 IAM 역할이 부여된 Amazon Cognito 역할과 일치하도록 하려면 다음 단계를 수행하세요.

  1. OpenSearch Service 콘솔을 엽니다.

  2. 탐색 창의 Managed clusters(관리형 클러스터)에서 Domains(도메인)를 선택합니다.

  3. [작업]을 선택합니다.

  4. Edit security configuration(보안 구성 편집)을 선택합니다.

  5. 세분화된 액세스 제어에서 IAM 역할 설정을 기본/고급 사용자로 설정합니다. Amazon Cognito 인증 역할의 ARN을 지정하세요.

  6. (선택 사항) 기본/고급 사용자의 ARN(또는 역할의 다른 구성 정보)을 잊었다면 기본/고급 사용자를 수정하세요. 기본/고급 사용자를 다시 구성할 때는 새로운 IAM ARN을 지정합니다.

  7. 제출을 선택합니다.

잘못된 자격 증명 풀 구성 오류

Amazon Cognito를 사용하여 로그인을 인증하더라도 다음과 같은 오류가 발생할 수 있습니다.

com.amazonaws.services.cognitoidentity.model.InvalidIdentityPoolConfigurationException:
Invalid identity pool configuration. Check assigned IAM roles for this pool.
(Service: AmazonCognitoIdentity; Status Code: 400; Error Code:
InvalidIdentityPoolConfigurationException; Request ID:
xxxxx-xxxx-xxxx-xxxx-xxxxx)

위 오류 메시지는 Amazon Cognito가 인증된 사용자를 대신해서 IAM 역할을 맡을 권한이 없을 경우에 나타납니다. IAM 역할에 대한 신뢰 관계를 수정합니다.

  1. Amazon IAM 콘솔을 엽니다.

  2. [Roles]를 선택합니다.

  3. IAM 역할을 선택합니다.

  4. 신뢰 관계 탭을 선택합니다.

  5. [신뢰 관계 편집]을 선택합니다. Amazon Cognito 자격 증명 풀이 IAM 역할을 맡을 수 있는지 확인하세요.

예를 들면 다음과 같습니다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "cognito-identity.amazonaws.com"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "cognito-identity.amazonaws.com:aud": "identity-pool-id"
       },
       "ForAnyValue:StringLike": {
         "cognito-identity.amazonaws.com:amr": "authenticated"
       }
      }
    }
  ]
}
  1. **신뢰 정책 업데이트(Update Trust Policy)**를 선택합니다.

세분화된 액세스 제어(FGAC)가 설정된 IAM 역할 정책 업데이트에 대한 자세한 내용은 자습서: IAM 마스터 사용자 및 Amazon Cognito 인증을 사용하여 도메인 구성을 참조하세요.

리디렉션 불일치 오류

Dashboards URL 또는 사용자 지정 엔드포인트 URL을 사용하여 OpenSearch Service에서 OpenSearch Dashboards에 액세스하려고 하면 다음과 같은 오류가 발생할 수 있습니다.

"An error was encountered with the requested page"

위 오류는 Amazon Cognito의 앱 클라이언트 설정에서 콜백 URL 구성이 누락되면 발생합니다.

앱 클라이언트 설정이 올바르게 구성되었는지 확인하려면 다음의 단계를 수행하세요.

  1. Amazon Cognito 콘솔을 엽니다.

  2. [사용자 풀 관리]를 선택합니다.

  3. 편집할 사용자 풀을 선택합니다.

  4. 콘솔 왼쪽 **앱 통합(App integration)**의 **앱 클라이언트(App client)**에서 **OpenSearch 앱 클라이언트(OpenSearch App Client)**를 선택합니다.

  5. 콜백 URL로그아웃 URL이 올바르게 구성되었는지 확인합니다. 예를 들어 다음과 같이 명령을 수행합니다.

<dashboards-endpoint>/_dashboards/app/home

사용자 지정 엔드포인트가 설정된 도메인의 경우 콜백 URL로그아웃 URL은 다음과 같습니다.

<domain-custom-endpoint>/_dashboards/app/home

Amazon Cognito 자격 증명 풀 권한 부여 역할 오류

로그인할 수 있지만 OpenSearch Dashboards가 보이지 않는다면, 다음과 같은 오류가 표시될 수 있습니다.

User: arn:aws:sts:: 123456789012:assumed-role/Cognito_identitypoolAuth_Role/CognitoIdentityCredentials is not authorized to perform: es:ESHttpGet

기본적으로 자격 증명 풀에 대한 인증된 IAM 역할에는 Dashboards에 액세스하는 데 필요한 권한이 포함되어 있지 않습니다. 다음 단계를 수행하여 인증된 역할의 이름을 찾아 OpenSearch Service 액세스 정책에 추가할 수 있습니다.

  1. Amazon Cognito 콘솔을 엽니다.

  2. [자격 증명 풀 관리]를 선택합니다.

  3. 콘솔 오른쪽 상단 모서리에서 자격 증명 풀 편집을 선택합니다.

  4. 인증된 역할을 OpenSearch Service 도메인 액세스 정책에 추가합니다.

참고: 인증된 사용자에 대해 리소스 기반 정책을 사용하는 것이 좋습니다. 인증된 역할은 Dashboards에 대한 Amazon Cognito 인증을 제어합니다. 그러므로 도메인 액세스 정책에서 다른 리소스를 제거하지 마세요.


관련 정보

일반적인 구성 문제

AWS 공식
AWS 공식업데이트됨 일 년 전