Kibana로 Amazon Cognito 인증 문제를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 1월 27일

Amazon Elasticsearch Service(Amazon ES) 클러스터에서 Amazon Cognito 인증을 사용하여 Kibana에 액세스하려고 합니다. 그러나 오류나 로그인 문제가 발생합니다. 이유가 무엇입니까?

해결 방법

Kibana URL을 입력했지만 로그인 페이지를 볼 수 없는 경우

Kibana URL을 입력하고 Kibana 대시보드로 리디렉션되는 경우 다음과 같은 이유 중 하나일 수 있습니다.

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

Kibana 로그인 페이지로 리디렉션되지만 로그인할 수 없습니다.

Kibana 로그인 페이지로 리디렉션되었지만 로그인할 수 없는 경우는 Amazon Cognito가 잘못 구성되어 있다는 것을 의미합니다. 이 문제를 해결하려면 다음의 방법을 고려해보세요.

"Missing Role" 오류

Amazon ES 도메인에서 Kibana에 세분화된 액세스 제어(FGAC)를 활성화했다면 다음과 같은 오류가 발생할 수 있습니다.

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

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

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

1.    Amazon ES 콘솔로 이동합니다.

2.    Amazon ES 도메인을 선택합니다.

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

4.    [인증 수정]을 선택합니다.

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

6.    [신뢰 정책 업데이트]를 선택합니다.

세분화된 액세스 제어(FGAC)가 활성화된 IAM 역할 정책 업데이트에 대한 자세한 내용은 자습서: IAM 기본 사용자 및 Amazon Cognito를 참조하세요.

리디렉션 불일치 오류

Kibana URL이나 사용자 지정 엔드포인트 URL로 Amazon ES에서 Kibana에 액세스하려고 시도할 때 다음과 같은 오류가 발생할 수 있습니다.

"An error was encountered with the requested page"

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

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

1.    Amazon Cognito 콘솔로 이동합니다.

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

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

4.    콘솔 왼쪽에서 [앱 클라이언트 설정]을 선택합니다.

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

<Kibana endpoint>/app/kibana

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

<Kibana custom endpoint URL>/app/kibana, <Kibana endpoint>/app/kibana

Amazon Cognito 자격 증명 풀 인증 역할 오류

로그인할 수 있지만, Kibana가 보이지 않는다면 다음과 같은 오류가 나타날 수 있습니다.

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

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

1.    Amazon Cognito 콘솔로 이동합니다.

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

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

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

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


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?