OpenSearch Dashboards에 액세스하고 Amazon OpenSearch Service 도메인에서 Amazon Cognito 인증을 사용하고 싶습니다. 하지만 오류가 발생하거나 로그인 문제가 발생합니다.
해결 방법
OpenSearch Dashboards URL을 입력할 때 로그인 페이지가 나타나지 않음
다음과 같은 이유로 로그인 페이지가 나타나지 않을 수 있습니다.
- 로컬 시스템의 IP 주소가 Dashboards에 액세스할 수 있도록 허용하는 IP 기반 도메인 액세스 정책을 사용했습니다. 이 문제를 해결하려면 도메인 액세스 정책에 Amazon Cognito 인증 역할을 추가하십시오.
- 요청에 서명할 권한이 있는 AWS Identity and Access Management(IAM) 역할을 사용했습니다. 이 문제를 해결하려면 프록시 방법을 사용하여 요청에 서명하지 마십시오.
- OpenSearch Service 도메인은 가상 프라이빗 클라우드(VPC)에 있으므로 도메인에는 오픈 액세스 정책이 적용됩니다. 도메인이 VPC에 있는 경우 Dashboards에 액세스하기 위해 Amazon Cognito 인증이 필요하지 않습니다.
참고: Amazon Cognito 인증을 요구하려면 도메인 액세스 정책을 변경하십시오.
Amazon Cognito 인증을 통해 OpenSearch Dashboards로그인 페이지로 리디렉션되지만 로그인할 수 없다면 Amazon Cognito를 잘못 구성한 것입니다. 이 오류를 해결하려면 다음 작업을 수행하십시오.
“Missing Role” 오류
OpenSearch Service 도메인의 OpenSearch Dashboards에서 세분화된 액세스 제어를 활성화한 경우 다음 오류가 발생할 수 있습니다.
"Missing Role No roles available for this user, please contact your system administrator."
이 문제를 해결하려면 Amazon Cognito ID 풀이 수임하는 역할이 지정된 기본 사용자의 IAM 역할과 일치하는지 확인하십시오.
기본 사용자의 IAM 역할을 수임된 Amazon Cognito 역할과 일치시키려면 다음 단계를 완료하십시오.
- OpenSearch Service 콘솔을 엽니다.
- 탐색 창의Managed clusters(관리형 클러스터)에서 Domains(도메인)를 선택합니다.
- Actions(작업)를 선택합니다.
- Edit security configuration(보안 구성 편집)을 선택합니다.
- Fine-grained access control(세분화된 액세스 제어)에서 기본 사용자로 Set IAM role(IAM 역할 설정)을 선택합니다. Amazon Cognito 인증 역할의 ARN을 지정해야 합니다.
- (선택 사항) 기본 사용자의 ARN을 모르는 경우 기본 사용자를 수정하여 새 IAM ARN을 지정하십시오.
- Submit(제출)을 선택합니다.
잘못된 ID 풀 구성 오류
Amazon Cognito에 인증된 사용자의 IAM 역할을 수임할 권한이 없는 경우 다음 오류가 발생할 수 있습니다.
"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: #####-####-####-####-#####)"
이 문제를 해결하려면 IAM 역할의 신뢰 관계를 수정하십시오.
다음 단계를 완료하십시오.
-
Amazon IAM 콘솔을 엽니다.
-
Roles(역할)를 선택합니다.
-
IAM 역할을 선택합니다.
-
Trust relationships(신뢰 관계) 탭을 선택합니다.
-
Edit trust relationship(신뢰 관계 편집)을 선택합니다. Amazon Cognito ID 풀이 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"
}
}
}
]
}
-
Update trust policy(신뢰 정책 업데이트)를 선택합니다.
자세한 내용은 튜토리얼: IAM 마스터 사용자와 Amazon Cognito 인증을 사용하여 도메인 구성을 참조하십시오
페이지 요청 시 오류 발생
앱 클라이언트 설정에서 콜백 URL 또는 사용자 지정 엔드포인트를 잘못 구성한 경우 다음 오류가 발생할 수 있습니다.
"An error was encountered with the requested page"
앱 클라이언트 설정을 올바르게 구성했는지 확인하려면 다음 단계를 완료하십시오.
-
Amazon Cognito 콘솔을 엽니다.
-
Manage user pools(사용자 풀 관리)를 선택합니다.
-
편집할 사용자 풀을 선택합니다.
-
App integration(앱 통합)의 App client(앱 클라이언트) 메뉴에서 OpenSearch 앱 클라이언트를 선택합니다.
-
콜백 URL과 로그아웃 URL을 올바르게 구성했는지 확인하십시오.
URL 예시:
<dashboards-endpoint>/_dashboards/app/home
사용자 지정 엔드포인트가 활성화된 도메인의 URL 예시:
<domain-custom-endpoint>/_dashboards/app/home
"CognitoIdentityCredentials is not authorized to perform" 오류 발생
로그인했지만 OpenSearch Dashboards가 보이지 않는 경우 다음과 같은 오류가 나타날 수 있습니다.
User: arn:aws:sts:: 123456789012:assumed-role/Cognito_identitypoolAuth_Role/CognitoIdentityCredentials is not authorized to perform: es:ESHttpGet"
기본적으로 ID 풀의 인증된 IAM 역할에는 Dashboards 액세스에 필요한 권한이 포함되지 않습니다. 인증된 역할의 이름을 찾아 OpenSearch Service 액세스 정책에 추가하려면 다음 단계를 완료하십시오.
- Amazon Cognito 콘솔을 엽니다.
- Manage identity pools(ID 풀 관리)를 선택합니다.
- Edit identity pool(ID 풀 편집)을 선택합니다.
- OpenSearch Service 도메인 액세스 정책에 인증된 역할을 추가합니다.
참고: 인증된 사용자에게는 리소스 기반 정책을 사용하는 것이 가장 좋습니다. 인증된 역할은 특히 OpenSearch Dashboards에 대한 Amazon Cognito 인증을 제어합니다.
관련 정보
일반적인 구성 문제