View a markdown version of this page

OpenSearch 도메인에 대한 교차 계정 데이터 액세스 - Amazon OpenSearch Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

OpenSearch 도메인에 대한 교차 계정 데이터 액세스

한 계정에서 OpenSearch UI 애플리케이션을 구성하여 다른 계정의 OpenSearch 도메인에 액세스할 수 있습니다. 교차 계정 데이터 소스를 사용하여 OpenSearch UI 애플리케이션을 생성할 때 대상 계정의 IAM 역할을 iamRoleForDataSourceArn 가리키는를 제공합니다. OpenSearch UI는이 역할을 수임하고를 호출하여 도메인 액세스 가능성을 확인하여 요청을 검증es:DescribeDomain합니다. 교차 계정 역할은 컨트롤 플레인 검증에만 사용됩니다. 데이터 영역 액세스는 대상 도메인의 액세스 정책에 의해 별도로 제어됩니다.

샘플 코드

이 주제의 코드 예제는 설명을 위한 것입니다. 기본 기능을 보여주며 오류 처리, 보안 모범 사례 또는 프로덕션 지원 기능은 포함되지 않을 수 있습니다. 프로덕션 환경에서 샘플 코드를 사용하기 전에 특정 요구 사항을 충족하도록 샘플 코드를 검토 및 수정하고 환경에서 철저히 테스트합니다.

주요 개념

소스 계정

OpenSearch UI 애플리케이션을 호스팅 AWS 계정 하는 .

대상 계정

OpenSearch 도메인 AWS 계정 이 있는 입니다.

교차 계정 역할

컨트롤 플레인 검증에만 사용되는 대상 계정의 IAM 역할입니다. 이 역할에는 es:DescribeDomain 권한만 필요합니다.

IAM Identity Center 애플리케이션 역할

IAM Identity Center 사용자 데이터 영역 액세스에 사용되는 소스 계정의 IAM 역할입니다.

사전 조건

교차 계정 데이터 액세스를 설정하기 전에 다음이 있는지 확인합니다.

  • AWS CLI 설치 및 구성됨

  • 소스 및 대상 모두에 대한 액세스 AWS 계정

  • IAM Identity Center 흐름의 경우: AWS IAM Identity Center 조직 인스턴스

시나리오

인증 방법 및 도메인 구성과 일치하는 시나리오를 선택합니다.

시나리오 1: 퍼블릭 도메인에 액세스하는 IAM 사용자

1단계: 교차 계정 IAM 역할 생성(대상 계정)

소스 계정이 도메인 검증을 위해 수임하도록 허용하는 IAM 역할을 대상 계정에 생성합니다.

교차 계정 역할을 생성하려면
  1. 소스 계정이 역할을 수임하도록 허용하는 신뢰 정책을 생성합니다.

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] }
  2. 역할을 생성합니다.

    aws iam create-role \ --role-name OpenSearchUIAccessRole \ --assume-role-policy-document file://trust-policy.json
  3. es:DescribeDomain 작업만 사용하여 권한 정책을 생성합니다.

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] }
  4. 역할에 권한 정책 연결:

    aws iam put-role-policy \ --role-name OpenSearchUIAccessRole \ --policy-name ValidationOnly \ --policy-document file://permissions-policy.json

2단계: OpenSearch 도메인(대상 계정) 생성

세분화된 액세스 제어 및 암호화가 활성화된 대상 계정에서 OpenSearch 도메인을 생성합니다.

aws opensearch create-domain \ --domain-name domain-name \ --engine-version OpenSearch_2.19 \ --cluster-config InstanceType=m5.large.search,InstanceCount=1 \ --ebs-options "EBSEnabled=true,VolumeType=gp3,VolumeSize=100" \ --advanced-security-options '{"Enabled":true,"InternalUserDatabaseEnabled":true,"MasterUserOptions":{"MasterUserName":"admin","MasterUserPassword":"master-password"}}' \ --node-to-node-encryption-options '{"Enabled":true}' \ --encryption-at-rest-options '{"Enabled":true}' \ --domain-endpoint-options '{"EnforceHTTPS":true,"TLSSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"}' \ --access-policies '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"*"},"Action":"es:ESHttp*","Resource":"arn:aws:es:region:target-account-id:domain/domain-name/*"}]}' \ --region region

계속하기 Active 전에 도메인 상태가 될 때까지 기다립니다.

3단계: OpenSearch UI 애플리케이션 생성(소스 계정)

교차 계정 데이터 소스를 사용하여 소스 계정에서 애플리케이션을 생성합니다.

aws opensearch create-application \ --region region \ --name "cross-account-iam-app" \ --data-sources '[{ "dataSourceArn":"arn:aws:es:region:target-account-id:domain/domain-name", "dataSourceDescription":"Cross-account domain", "iamRoleForDataSourceArn":"arn:aws:iam::target-account-id:role/OpenSearchUIAccessRole" }]' \ --app-configs '[{"key":"opensearchDashboards.dashboardAdmin.users","value":"[\"*\"]"}]'

4단계: 확인 및 액세스

애플리케이션 세부 정보를 검색하여 엔드포인트 URL을 가져옵니다.

aws opensearch get-application \ --region region \ --id application-id
  • 응답에서 애플리케이션 엔드포인트 URL로 이동합니다.

  • IAM 자격 증명으로 로그인합니다.

  • IAM 사용자는 자신의 자격 증명으로 데이터 영역 요청에 서명합니다.

  • 대상 도메인 액세스 정책은 사용자가 액세스할 수 있는 데이터를 제어합니다.

시나리오 2: 퍼블릭 도메인에 액세스하는 IAM Identity Center 사용자

1단계: 교차 계정 IAM 역할 생성(대상 계정)

소스 계정이 도메인 검증을 위해 수임하도록 허용하는 IAM 역할을 대상 계정에 생성합니다.

교차 계정 역할을 생성하려면
  1. 소스 계정이 역할을 수임하도록 허용하는 신뢰 정책을 생성합니다.

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] }
  2. 역할을 생성합니다.

    aws iam create-role \ --role-name OpenSearchUIAccessRole \ --assume-role-policy-document file://trust-policy.json
  3. es:DescribeDomain 작업만 사용하여 권한 정책을 생성합니다.

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] }
  4. 역할에 권한 정책 연결:

    aws iam put-role-policy \ --role-name OpenSearchUIAccessRole \ --policy-name ValidationOnly \ --policy-document file://permissions-policy.json

2단계: OpenSearch 도메인(대상 계정) 생성

대상 계정에서 OpenSearch 도메인을 생성합니다. 와 동일한 명령을 사용하지2단계: OpenSearch 도메인(대상 계정) 생성만 소스 계정에서 IAM Identity Center 애플리케이션 역할을 허용하도록 액세스 정책을 업데이트합니다.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:role/NeoIdCAppRole" }, "Action": "es:ESHttp*", "Resource": "arn:aws:es:region:target-account-id:domain/domain-name/*" }] }

계속하기 Active 전에 도메인 상태가 될 때까지 기다립니다.

3단계: IAM Identity Center 애플리케이션에 대한 IAM 역할 생성(소스 계정)

OpenSearch UI가 IAM Identity Center 사용자 데이터 영역 액세스에 사용하는 소스 계정에서 IAM 역할을 생성합니다.

IAM Identity Center 애플리케이션 역할을 생성하려면
  1. 신뢰 정책 생성:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "application.opensearchservice.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "Service": "application.opensearchservice.amazonaws.com" }, "Action": "sts:SetContext", "Condition": { "ForAllValues:ArnEquals": { "sts:RequestContextProviders": "arn:aws:iam::source-account-id:oidc-provider/portal.sso.region.amazonaws.com/apl/application-id" } } } ] }
  2. 권한 정책 생성:

    { "Version": "2012-10-17", "Statement": [{ "Sid": "OpenSearchDomain", "Effect": "Allow", "Action": ["es:ESHttp*"], "Resource": "*" }] }
  3. 역할을 생성하고 정책을 연결합니다.

    aws iam create-role \ --role-name NeoIdCAppRole \ --assume-role-policy-document file://neoidc-trust-policy.json aws iam put-role-policy \ --role-name NeoIdCAppRole \ --policy-name NeoIdCAppPermissions \ --policy-document file://neoidc-permissions-policy.json

4단계: IAM Identity Center를 사용하여 OpenSearch UI 애플리케이션 생성(소스 계정)

aws opensearch create-application \ --region region \ --name "cross-account-idc-app" \ --iam-identity-center-options '{ "enabled":true, "iamIdentityCenterInstanceArn":"arn:aws:sso:::instance/ssoins-instance-id", "iamRoleForIdentityCenterApplicationArn":"arn:aws:iam::source-account-id:role/NeoIdCAppRole" }' \ --data-sources '[{ "dataSourceArn":"arn:aws:es:region:target-account-id:domain/domain-name", "dataSourceDescription":"Cross-account domain", "iamRoleForDataSourceArn":"arn:aws:iam::target-account-id:role/OpenSearchUIAccessRole" }]' \ --app-configs '[{"key":"opensearchDashboards.dashboardAdmin.users","value":"[\"*\"]"}]'

5단계: IAM Identity Center 사용자 및 그룹 생성 및 할당

IAM Identity Center 사용자 생성

다음 명령을 실행합니다. 자리 표시자를 자신의 정보로 바꿉니다.

aws identitystore create-user \ --identity-store-id d-directory-id \ --user-name user-email \ --display-name "display-name" \ --name Formatted=string,FamilyName=last-name,GivenName=first-name \ --emails Value=user-email,Type=work,Primary=true
IAM Identity Center 그룹 생성 및 사용자 추가

다음 명령을 실행합니다.

aws identitystore create-group \ --identity-store-id d-directory-id \ --display-name "OpenSearchUsers" \ --description "Users with OpenSearch access" aws identitystore create-group-membership \ --identity-store-id d-directory-id \ --group-id group-id \ --member-id UserId=user-id
애플리케이션에 사용자 또는 그룹 할당

다음 명령을 실행합니다.

aws sso-admin create-application-assignment \ --application-arn "arn:aws:sso:::source-account-id:application/ssoins-instance-id/apl-application-id" \ --principal-id user-id-or-group-id \ --principal-type USER
대상 도메인에서 백엔드 역할 매핑 구성

IAM Identity Center 그룹을 대상 도메인의 OpenSearch 보안 역할에 매핑합니다.

curl -XPUT "https://domain-endpoint/_plugins/_security/api/rolesmapping/all_access" \ -u admin:master-password \ -H 'Content-Type: application/json' \ -d '{ "backend_roles": ["group-id"], "hosts": [], "users": [] }'

6단계: 확인 및 액세스

aws opensearch get-application \ --region region \ --id application-id
  • 애플리케이션 엔드포인트 URL로 이동합니다.

  • IAM Identity Center 사용자 자격 증명으로 로그인합니다.

  • IAM Identity Center 사용자의 데이터 요청은 교차 계정 역할이 아닌 IAM Identity Center 애플리케이션 역할로 서명됩니다.

  • 도메인의 백엔드 역할 매핑은 데이터 액세스 권한을 제어합니다.

시나리오 3: VPC 도메인에 액세스하는 IAM 사용자

1단계: 교차 계정 IAM 역할 생성(대상 계정)

소스 계정이 도메인 검증을 위해 수임하도록 허용하는 IAM 역할을 대상 계정에 생성합니다.

교차 계정 역할을 생성하려면
  1. 소스 계정이 역할을 수임하도록 허용하는 신뢰 정책을 생성합니다.

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] }
  2. 역할을 생성합니다.

    aws iam create-role \ --role-name OpenSearchUIAccessRole \ --assume-role-policy-document file://trust-policy.json
  3. es:DescribeDomain 작업만 사용하여 권한 정책을 생성합니다.

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] }
  4. 역할에 권한 정책 연결:

    aws iam put-role-policy \ --role-name OpenSearchUIAccessRole \ --policy-name ValidationOnly \ --policy-document file://permissions-policy.json

2단계: VPC(대상 계정) 설정

대상 계정에 VPC가 이미 있는 경우이 단계를 건너뜁니다.

# Create VPC aws ec2 create-vpc \ --cidr-block 10.0.0.0/16 \ --region region # Create subnet aws ec2 create-subnet \ --vpc-id vpc-id \ --cidr-block 10.0.1.0/24 \ --availability-zone regiona \ --region region # Create security group aws ec2 create-security-group \ --group-name opensearch-vpc-sg \ --description "Security group for OpenSearch VPC domain" \ --vpc-id vpc-id \ --region region # Allow inbound HTTPS aws ec2 authorize-security-group-ingress \ --group-id security-group-id \ --protocol tcp \ --port 443 \ --cidr 10.0.0.0/16 \ --region region

VPC 도메인 생성에 대해 자세히 알아봅니다.

3단계: VPC 도메인 생성(대상 계정)

aws opensearch create-domain \ --domain-name vpc-domain-name \ --engine-version OpenSearch_2.19 \ --cluster-config InstanceType=m5.large.search,InstanceCount=1 \ --ebs-options "EBSEnabled=true,VolumeType=gp3,VolumeSize=100" \ --vpc-options "SubnetIds=subnet-id,SecurityGroupIds=security-group-id" \ --advanced-security-options '{"Enabled":true,"InternalUserDatabaseEnabled":true,"MasterUserOptions":{"MasterUserName":"admin","MasterUserPassword":"master-password"}}' \ --node-to-node-encryption-options '{"Enabled":true}' \ --encryption-at-rest-options '{"Enabled":true}' \ --domain-endpoint-options '{"EnforceHTTPS":true,"TLSSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"}' \ --access-policies '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"*"},"Action":"es:ESHttp*","Resource":"arn:aws:es:region:target-account-id:domain/vpc-domain-name/*"}]}' \ --region region

계속하기 Active 전에 도메인 상태가 될 때까지 기다립니다.

4단계: OpenSearch UI 서비스 보안 주체(대상 계정)에 대한 VPC 엔드포인트 권한 부여

중요

이는 VPC 도메인에 고유한 중요한 단계입니다. OpenSearch UI 서비스는 VPC 엔드포인트에 액세스할 수 있는 명시적 권한이 있어야 합니다.

# Authorize the service principal aws opensearch authorize-vpc-endpoint-access \ --domain-name vpc-domain-name \ --service "application.opensearchservice.amazonaws.com" \ --region region # Verify authorization aws opensearch list-vpc-endpoint-access \ --domain-name vpc-domain-name \ --region region

예상 응답:

{ "AuthorizedPrincipalList": [ { "PrincipalType": "AWS_SERVICE", "Principal": "application.opensearchservice.amazonaws.com" } ] }

5단계: OpenSearch UI 애플리케이션 생성(소스 계정)

aws opensearch create-application \ --region region \ --name "cross-account-vpc-iam-app" \ --data-sources '[{ "dataSourceArn":"arn:aws:es:region:target-account-id:domain/vpc-domain-name", "dataSourceDescription":"Cross-account VPC domain", "iamRoleForDataSourceArn":"arn:aws:iam::target-account-id:role/OpenSearchUIAccessRole" }]' \ --app-configs '[{"key":"opensearchDashboards.dashboardAdmin.users","value":"[\"*\"]"}]'

6단계: 확인 및 액세스

애플리케이션 세부 정보를 검색하여 엔드포인트 URL을 가져옵니다.

aws opensearch get-application \ --region region \ --id application-id
  • 응답에서 애플리케이션 엔드포인트 URL로 이동합니다.

  • IAM 자격 증명으로 로그인합니다.

  • IAM 사용자는 자신의 자격 증명으로 데이터 영역 요청에 서명합니다.

  • 대상 도메인 액세스 정책은 사용자가 액세스할 수 있는 데이터를 제어합니다.

시나리오 4: VPC 도메인에 액세스하는 IAM Identity Center 사용자

1단계: 교차 계정 IAM 역할 생성(대상 계정)

소스 계정이 도메인 검증을 위해 수임하도록 허용하는 IAM 역할을 대상 계정에 생성합니다.

교차 계정 역할을 생성하려면
  1. 소스 계정이 역할을 수임하도록 허용하는 신뢰 정책을 생성합니다.

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] }
  2. 역할을 생성합니다.

    aws iam create-role \ --role-name OpenSearchUIAccessRole \ --assume-role-policy-document file://trust-policy.json
  3. es:DescribeDomain 작업만 사용하여 권한 정책을 생성합니다.

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] }
  4. 역할에 권한 정책 연결:

    aws iam put-role-policy \ --role-name OpenSearchUIAccessRole \ --policy-name ValidationOnly \ --policy-document file://permissions-policy.json

2단계: VPC(대상 계정) 설정

대상 계정에 VPC가 이미 있는 경우이 단계를 건너뜁니다.

# Create VPC aws ec2 create-vpc \ --cidr-block 10.0.0.0/16 \ --region region # Create subnet aws ec2 create-subnet \ --vpc-id vpc-id \ --cidr-block 10.0.1.0/24 \ --availability-zone regiona \ --region region # Create security group aws ec2 create-security-group \ --group-name opensearch-vpc-sg \ --description "Security group for OpenSearch VPC domain" \ --vpc-id vpc-id \ --region region # Allow inbound HTTPS aws ec2 authorize-security-group-ingress \ --group-id security-group-id \ --protocol tcp \ --port 443 \ --cidr 10.0.0.0/16 \ --region region

VPC 도메인 생성에 대해 자세히 알아봅니다.

3단계: VPC 도메인 생성(대상 계정)

와 동일한 명령을 사용하지3단계: VPC 도메인 생성(대상 계정)만 소스 계정에서 IAM Identity Center 애플리케이션 역할을 허용하도록 액세스 정책을 업데이트합니다.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:role/NeoIdCAppRole" }, "Action": "es:ESHttp*", "Resource": "arn:aws:es:region:target-account-id:domain/vpc-domain-name/*" }] }

계속하기 Active 전에 도메인 상태가 될 때까지 기다립니다.

4단계: OpenSearch UI 서비스 보안 주체(대상 계정)에 대한 VPC 엔드포인트 권한 부여

중요

이는 VPC 도메인에 고유한 중요한 단계입니다. OpenSearch UI 서비스는 VPC 엔드포인트에 액세스할 수 있는 명시적 권한이 있어야 합니다.

# Authorize the service principal aws opensearch authorize-vpc-endpoint-access \ --domain-name vpc-domain-name \ --service "application.opensearchservice.amazonaws.com" \ --region region # Verify authorization aws opensearch list-vpc-endpoint-access \ --domain-name vpc-domain-name \ --region region

예상 응답:

{ "AuthorizedPrincipalList": [ { "PrincipalType": "AWS_SERVICE", "Principal": "application.opensearchservice.amazonaws.com" } ] }

5단계: IAM Identity Center 애플리케이션에 대한 IAM 역할 생성(소스 계정)

OpenSearch UI가 IAM Identity Center 사용자 데이터 영역 액세스에 사용하는 소스 계정에서 IAM 역할을 생성합니다.

IAM Identity Center 애플리케이션 역할을 생성하려면
  1. 신뢰 정책 생성:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "application.opensearchservice.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "Service": "application.opensearchservice.amazonaws.com" }, "Action": "sts:SetContext", "Condition": { "ForAllValues:ArnEquals": { "sts:RequestContextProviders": "arn:aws:iam::source-account-id:oidc-provider/portal.sso.region.amazonaws.com/apl/application-id" } } } ] }
  2. 권한 정책 생성:

    { "Version": "2012-10-17", "Statement": [{ "Sid": "OpenSearchDomain", "Effect": "Allow", "Action": ["es:ESHttp*"], "Resource": "*" }] }
  3. 역할을 생성하고 정책을 연결합니다.

    aws iam create-role \ --role-name NeoIdCAppRole \ --assume-role-policy-document file://neoidc-trust-policy.json aws iam put-role-policy \ --role-name NeoIdCAppRole \ --policy-name NeoIdCAppPermissions \ --policy-document file://neoidc-permissions-policy.json

6단계: IAM Identity Center를 사용하여 OpenSearch UI 애플리케이션 생성(소스 계정)

aws opensearch create-application \ --region region \ --name "cross-account-vpc-idc-app" \ --iam-identity-center-options '{ "enabled":true, "iamIdentityCenterInstanceArn":"arn:aws:sso:::instance/ssoins-instance-id", "iamRoleForIdentityCenterApplicationArn":"arn:aws:iam::source-account-id:role/NeoIdCAppRole" }' \ --data-sources '[{ "dataSourceArn":"arn:aws:es:region:target-account-id:domain/vpc-domain-name", "dataSourceDescription":"Cross-account VPC domain", "iamRoleForDataSourceArn":"arn:aws:iam::target-account-id:role/OpenSearchUIAccessRole" }]' \ --app-configs '[{"key":"opensearchDashboards.dashboardAdmin.users","value":"[\"*\"]"}]'

7단계: IAM Identity Center 사용자 및 그룹 생성 및 할당

IAM Identity Center 사용자 생성

다음 명령을 실행합니다. 자리 표시자를 자신의 정보로 바꿉니다.

aws identitystore create-user \ --identity-store-id d-directory-id \ --user-name user-email \ --display-name "display-name" \ --name Formatted=string,FamilyName=last-name,GivenName=first-name \ --emails Value=user-email,Type=work,Primary=true
IAM Identity Center 그룹 생성 및 사용자 추가

다음 명령을 실행합니다.

aws identitystore create-group \ --identity-store-id d-directory-id \ --display-name "OpenSearchUsers" \ --description "Users with OpenSearch access" aws identitystore create-group-membership \ --identity-store-id d-directory-id \ --group-id group-id \ --member-id UserId=user-id
애플리케이션에 사용자 또는 그룹 할당

다음 명령을 실행합니다.

aws sso-admin create-application-assignment \ --application-arn "arn:aws:sso:::source-account-id:application/ssoins-instance-id/apl-application-id" \ --principal-id user-id-or-group-id \ --principal-type USER
대상 도메인에서 백엔드 역할 매핑 구성

IAM Identity Center 그룹을 대상 도메인의 OpenSearch 보안 역할에 매핑합니다.

curl -XPUT "https://domain-endpoint/_plugins/_security/api/rolesmapping/all_access" \ -u admin:master-password \ -H 'Content-Type: application/json' \ -d '{ "backend_roles": ["group-id"], "hosts": [], "users": [] }'

8단계: 확인 및 액세스

aws opensearch get-application \ --region region \ --id application-id
  • 애플리케이션 엔드포인트 URL로 이동합니다.

  • IAM Identity Center 사용자 자격 증명으로 로그인합니다.

  • IAM Identity Center 사용자의 데이터 요청은 교차 계정 역할이 아닌 IAM Identity Center 애플리케이션 역할로 서명됩니다.

  • 도메인의 백엔드 역할 매핑은 데이터 액세스 권한을 제어합니다.

애플리케이션 관리

교차 계정 데이터 소스로 애플리케이션 업데이트

다음 명령을 실행합니다. 자리 표시자를 자신의 정보로 바꿉니다.

aws opensearch update-application \ --region region \ --id application-id \ --data-sources '[{ "dataSourceArn":"arn:aws:es:region:target-account-id:domain/domain-1", "dataSourceDescription":"First cross-account domain", "iamRoleForDataSourceArn":"arn:aws:iam::target-account-id:role/OpenSearchUIAccessRole" },{ "dataSourceArn":"arn:aws:es:region:target-account-id:domain/domain-2", "dataSourceDescription":"Second cross-account domain", "iamRoleForDataSourceArn":"arn:aws:iam::target-account-id:role/OpenSearchUIAccessRole" }]'
중요

업데이트 작업은 전체 데이터 소스 배열을 대체합니다. 유지하려는 모든 데이터 소스를 포함합니다.

애플리케이션 나열

다음 명령을 실행합니다.

aws opensearch list-applications \ --region region
애플리케이션 삭제

다음 명령을 실행합니다.

aws opensearch delete-application \ --region region \ --id application-id
VPC 엔드포인트 액세스 취소

다음 명령을 실행합니다.

aws opensearch revoke-vpc-endpoint-access \ --domain-name vpc-domain-name \ --service "application.opensearchservice.amazonaws.com" \ --region region

빠른 참조

다음 표에는 도메인 유형과 인증 방법 간의 주요 차이점이 요약되어 있습니다.

퍼블릭 도메인과 VPC 도메인 비교
속성 퍼블릭 도메인 VPC 도메인
VPC 엔드포인트 권한 부여 불필요 필수 -가 권한을 부여해야 합니다. application.opensearchservice.amazonaws.com
네트워크 설정 없음 HTTPS(443) 인바운드가 있는 VPC, 서브넷, 보안 그룹
IAM 액세스 정책 필수 필수
교차 계정 역할 교차 계정에 필요 교차 계정에 필요
IAM 사용자와 IAM Identity Center 사용자 비교
속성 IAM 사용자 IAM Identity Center 사용자
데이터 영역 자격 증명 사용자의 자체 IAM 자격 증명 IAM Identity Center 애플리케이션 역할
액세스 관리 도메인 액세스 정책 도메인 액세스 정책 및 백엔드 역할 매핑
추가 설정 없음 IAM Identity Center 애플리케이션 역할, 사용자/그룹 생성, 애플리케이션 할당, 백엔드 역할 매핑
OpenSearch UI 애플리케이션 구성 IAM Identity Center 옵션 없음 --iam-identity-center-options 필수

중요 정보

  • 는와 동일한 계정에 있어야 iamRoleForDataSourceArn 합니다dataSourceArn.

  • iamRoleForDataSourceArn는 교차 계정 데이터 소스에만 필요합니다. 동일 계정 데이터 소스의 경우 생략합니다.

  • 교차 계정 역할에는 es:DescribeDomain 권한만 필요합니다. 데이터 영역 액세스에는 사용되지 않습니다.

  • VPC 도메인의 경우 IAM 정책과 VPC 엔드포인트 권한 부여를 모두 구성해야 합니다.

  • 지원되는 엔진 버전: OpenSearch 1.3 이상.

문제 해결

문제 해결 방법
"도메인에 액세스할 수 없음"으로 애플리케이션 생성 실패 교차 계정 역할에 es:DescribeDomain 권한이 있고 신뢰 정책이 소스 계정을 허용하는지 확인합니다.
VPC 도메인 연결 실패 VPC 엔드포인트에에 대한 권한이 있는지 확인합니다application.opensearchservice.amazonaws.com.
IAM 사용자에 대한 데이터 영역 액세스 거부 대상 도메인 액세스 정책이 IAM 사용자 또는 역할 보안 주체를 허용하는지 확인합니다.
IAM Identity Center 사용자에 대한 데이터 영역 액세스 거부 백엔드 역할 매핑에 IAM Identity Center 그룹 ID가 포함되어 있고 도메인 정책에서 IAM Identity Center 애플리케이션 역할을 허용하는지 확인합니다.
계정 불일치 오류 iamRoleForDataSourceArn가의 도메인과 동일한 계정에 있는지 확인합니다dataSourceArn.