IAM 역할을 사용하여 AWS 계정 간에 Amazon Elasticsearch 액세스 권한을 위임하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 2월 25일

내 계정의 Amazon Elasticsearch Service(Amazon ES) 리소스를 다른 계정의 사용자와 공유하려고 합니다. 어떻게 해야 합니까?

간략한 설명

Amazon ES 도메인에 대한 교차 계정 액세스를 활성화하는 가장 쉬운 방법은 AWS Identity and Access Management(IAM) 역할을 사용하여 교차 계정 제어를 설정하는 것입니다. 대상 계정에 IAM 역할을 추가하면 신뢰할 수 있는 계정의 사용자가 대상 계정의 Amazon ES 도메인에 액세스하도록 허용할 수 있습니다. 이렇게 하면 조직의 여러 사용자가 AWS 콘솔에서 IAM 역할을 전환하여 중앙 로깅 Amazon ES 스테이션에 액세스하고 관리할 수 있습니다.

사용자가 IAM 역할을 사용하여 Amazon ES 리소스에 액세스할 수 있도록 하려면 다음과 같은 프로세스를 따릅니다.

  1. 계정 A에서 대상 Amazon ES 도메인에 액세스할 수 있는 역할을 생성합니다.
  2. 계정 A에서 역할을 맡을 수 있는 사용자를 계정 B에 만듭니다.
  3. 역할을 전환하여 대상 Amazon ES 도메인에 액세스하는 데 역할을 사용할 수 있도록 계정 B의 사용자에게 액세스 권한을 부여합니다.

참고: 계정 A는 대상 Amazon ES 도메인이 있는 계정입니다. 계정 B는 사용자가 중앙 로깅 스테이션에 액세스하는 계정입니다.

해결 방법

참고: AWS 명령줄 인터페이스(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요.

역할 생성 및 Amazon ES 도메인 관리 권한 부여

이 예에서는 CrossAccount-test라는 역할을 생성하고 Amazon ES 도메인 test를 관리할 수 있는 모든 권한을 부여합니다.

{
    "Version": "2012-10-17",
    "Statement": [
       
        {
            "Effect": "Allow",
            "Action": [
               
        "es:*"
            ],
            "Resource": “arn:aws:es:<Region>:<Account A-ID>:domain/test/*"
       
        }
    ]
}

역할의 트러스트 관계 편집

그런 다음 CrossAccount-test 역할의 트러스트 관계를 편집합니다.

참고: 계정 번호와 사용자 이름을 적절하게 변경합니다.

{
 
        "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service":
        "es.amazonaws.com",
        "AWS": [
          "arn:aws:iam::<Account B-ID>:root",

         
        "arn:aws:iam::<Account B-ID>:user/<User Name>"
        ]
      },
      "Action": "sts:AssumeRole"
   
        }
  ]
}

1단계와 2단계에서는 계정 B의 사용자를 신뢰할 수 있는 엔터티로 정의하고 신뢰할 수 있는 사용자가 계정 A의 Amazon ES 도메인에 액세스할 수 있도록 모든 권한을 부여합니다.

계정 B의 사용자에게 액세스 권한 부여

계정 B에서 다음 사용 권한을 가진 사용자 또는 그룹을 만듭니다.

{
    "Version": "2012-10-17",
    "Statement": {
       
        "Effect": "Allow",
        "Action": "sts:AssumeRole",
        "Resource": "arn:aws:iam::<Account A-ID>:role/<CrossAccount-test>"
   
        }
}

이 정책 설명을 추가할 때 계정 A의 CrossAccount-test 역할에 AssumeRole 작업을 허용할 수 있습니다.

참고: 리소스 요소의 ACCOUNT A-ID를 계정 A의 AWS 계정 ID로 변경해야 합니다.

역할이 도메인에 액세스할 수 있도록 Amazon ES 액세스 정책 편집

이 시점에서 계정 A의 역할을 가정할 신뢰할 수 있는 계정 B를 소유했습니다. 그런 다음 이 역할이 Amazon ES 도메인에 액세스하도록 허용합니다.

Amazon ES 액세스 정책을 편집하고 다음을 입력합니다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
     
        "Principal": {
        "AWS": [
          "arn:aws:iam::<Account A-ID>:role/<CrossAccount-test>"
       
        ]
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:<region>:<Account A-ID>:domain/<Domain Name>/*"
   
        }
  ]
}

역할을 전환하여 액세스 권한 테스트

교차 계정 지원을 사용하도록 설정했으므로 역할을 전환하여 액세스 권한을 테스트합니다.

  1. CrossAccount-test ARN을 클립보드에 복사합니다.
  2. AWS 콘솔을 사용하여 계정 B에 로그인합니다.
  3. [사용자(User)] 탭의 드롭다운 목록에서 [역할 전환(Switch Role)]을 선택합니다.
  4. [역할 전환(Switch Role)] 페이지에서 계정 A에 대한 계정 ID와 역할 이름을 입력합니다. 이 예에서 역할 이름은 CrossAccount-test입니다.
  5. [역할 전환(Switch Role)]을 선택합니다.

참고: 계정 B가 명령줄의 계정 A 환경에서 작동해야 하는 경우 AWS CLI를 사용하여 역할을 전환할 수 있습니다. 자세한 내용은 역할 전환(AWS CLI)을 참조하세요.

사용자 권한은 계정 A에서 생성한 역할에서 허용하는 권한으로 즉시 전환됩니다. 이러한 방식으로 교차 계정 액세스를 설정하면 사용자는 서로 다른 계정에서 개별 IAM 사용자를 생성할 필요가 없습니다. 또한 리소스에 액세스하기 위해 한 계정에서 로그아웃한 후 다른 계정으로 로그인할 필요가 없습니다. 


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


결제 또는 기술 지원이 필요합니까?