내용으로 건너뛰기

OpenSearch를 사용하여 Amazon Cognito 사용자 풀에 액세스하는 사용자에게 읽기 전용 권한을 할당하려면 어떻게 해야 합니까?

2분 분량
0

Amazon Cognito 사용자가 OpenSearch 대시보드를 사용할 때 사용자 풀에 대한 전체 액세스 권한을 갖지 않도록 하고 싶습니다.

해결 방법

세밀한 액세스 제어가 꺼진 도메인

OpenSearch 도메인에 세밀한 액세스 제어를 설정하지 않은 경우에는 OpenSearch 클러스터의 도메인 액세스 정책을 사용하여 액세스를 제한하십시오. 이 정책은 Cognito 사용자에게 읽기 전용 액세스 권한을 부여합니다. ESHttpGet 권한을 Cognito 로그인과 관련된 역할로 설정합니다.

ESHttpGet 권한이 있는 도메인 액세스 정책의 예:

{  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::account-id:role/Cognito_identity-pool-name Auth_Role"
      },
      "Action": "es:ESHttpGet",
      "Resource": "arn:aws:es:region:account-id:domain/opensearch-domain-name/"
    }
  ]
}

참고: account-id를 AWS 계정의 ID로 바꾸고 identity-pool-name을 Cognito ID 풀 역할 이름으로 바꾸십시오. 또한 region을 AWS 리전으로 바꾸고 opensearch-domain-name을 OpenSearch 도메인 이름으로 바꾸십시오.

자세한 내용은 Amazon Cognito 인증을 사용하도록 도메인 구성을 참조하십시오.

정책을 적용한 후 정책을 테스트한 다음 서명된 요청을 도메인에 전송하여 도메인에서 GET 작업만 수행할 수 있는지 확인합니다.

세밀한 액세스 제어가 켜진 OpenSearch 클러스터

다음 단계를 완료하십시오.

  1. Cognito 콘솔을 엽니다.

  2. 사용자 풀을 선택한 다음 사용자 생성을 선택합니다.

  3. limited-user와 같은 이름으로 사용자를 생성합니다.

  4. limited-user의 AWS Identity and Access Management(IAM) 역할을 생성합니다(예: LimitedUserRole). 기본 사용자인 경우 IAM 역할을 사용하여 특정 사용자에게 제한된 액세스 권한을 할당합니다.

  5. LimitedUserRole에 다음 신뢰 정책을 연결합니다.

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

    참고: identity-pool-id를 Cognito 자격 증명 풀 ID로 바꾸십시오.

  6. OpenSearch 도메인에 읽기 전용 권한을 부여하는 다음과 같은 사용자 지정 인라인 정책을 연결합니다.

    {  "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "AllowOpenSearchReadAccess",
          "Effect": "Allow",
          "Action": [
            "es:ESHttpGet"
          ],
          "Resource": "arn:aws:es:region:account-id:domain/"
        }
      ]
    }

    참고: region을 리전으로, account-id를 계정의 ID로 바꾸십시오.

  7. limited-user-group과 같은 이름으로 그룹을 생성한 다음 그룹에 LimitedUserRole IAM 역할을 할당합니다.

  8. limited-user-group을 선택한 다음 그룹에 limited-user 및 다른 사용자를 추가합니다.

limited-user를 OpenSearch 대시보드의 역할에 매핑

  1. OpenSearch 대시보드에 기본 사용자로 로그인합니다.
  2. 보안을 선택합니다.
  3. 역할을 선택한 다음 원하는 역할을 선택합니다. 또는 새 역할을 생성합니다. 자세한 내용은 OpenSearch 웹 사이트에서 Create roles를 참조하십시오.
    참고: 미리 정의된 역할 readall_and_monitor 또는 readall을 사용할 수도 있습니다. 자세한 내용은 OpenSearch 웹 사이트에서 Predefined roles를 참조하십시오.
  4. limited-user에게 역할을 매핑합니다.
  5. limited-user로 로그인합니다.
    참고: OpenSearch 대시보드에서는 쓰기 작업을 수행할 수 없습니다.
AWS 공식업데이트됨 일 년 전