View a markdown version of this page

OpenSearch 도메인에 대한 리전 간 데이터 액세스 - Amazon OpenSearch Service

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

OpenSearch 도메인에 대한 리전 간 데이터 액세스

하나의에서 OpenSearch UI 애플리케이션을 구성 AWS 리전 하여 다른 AWS 리전의 OpenSearch 도메인에 액세스할 수 있습니다. 이를 통해 동일한 파티션 내의 여러 AWS 리전에 걸쳐 OpenSearch 도메인의 데이터를 집계하는 통합 대시보드를 생성할 수 있습니다. 교차 리전 데이터 소스 지원을 사용하려면 대상 도메인에서 세분화된 액세스 제어를 활성화해야 합니다. 세분화된 액세스 제어는 도메인 액세스 정책 외에도 추가 권한 부여 계층을 제공하므로 개별 인덱스, 문서 및 필드에 대한 액세스를 제어할 수 있습니다.

주요 개념

애플리케이션 리전

OpenSearch UI 애플리케이션이 호스팅되는 AWS 리전 입니다.

대상 리전

OpenSearch 도메인 AWS 리전 이 있는 입니다. 이는 해당 리전에서 OpenSearch UI를 사용할 수 있는지 여부에 관계없이 동일한 파티션 내의 모든 리전일 수 있습니다.

교차 계정 역할

데이터 소스 연결 중에만 사용되는 대상 계정의 IAM 역할입니다. OpenSearch UI는이 역할을 수임하여를 호출합니다. es:DescribeDomain이 역할은 도메인 엔드포인트를 검색하고 세분화된 액세스 제어가 활성화되어 있는지 확인합니다. 이 역할은 도메인이 애플리케이션과 다른 계정에 있는 경우에만 필요합니다. 자세한 내용은 OpenSearch 도메인에 대한 교차 계정 데이터 액세스 단원을 참조하십시오.

IAM Identity Center 애플리케이션 역할

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

지원되는 리전(VPC 도메인의 경우)

VPC 도메인의 경우 VPC 엔드포인트를 승인할 때 OpenSearch UI 애플리케이션이 호스팅 AWS 리전되는를 허용 목록에 추가해야 합니다. OpenSearch UI가 VPC 도메인을 호출할 수 있으려면이 허용 목록 지정이 필요합니다.

사전 조건

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

  • AWS CLI 설치 및 구성됨

  • 애플리케이션 리전과 대상 리전 모두에서 AWS 계정 에 대한 액세스

  • 세분화된 액세스 제어가 활성화된 OpenSearch 도메인. 다중 리전 데이터 소스 연결은 세분화된 액세스 제어가 활성화된 도메인에서만 지원됩니다.

  • 교차 계정 시나리오의 경우: 소스 및 대상 모두에 대한 액세스 AWS 계정

  • IAM Identity Center 흐름의 경우: AWS IAM Identity Center 조직 인스턴스. OpenSearch UI 애플리케이션은 IAM Identity Center 인스턴스와 동일한 리전에 있어야 합니다.

시나리오

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

각 시나리오에서는 동일한 계정 교차 리전 액세스를 다룹니다. 교차 계정 교차 리전 액세스의 경우 이러한 시나리오의 단계를에 설명된 교차 계정 역할 설정과 결합합니다OpenSearch 도메인에 대한 교차 계정 데이터 액세스.

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

이 시나리오에서는 한 리전에서 OpenSearch UI 애플리케이션을 생성하고 동일한 계정 내의 다른 리전에 있는 퍼블릭 OpenSearch 도메인에 연결합니다.

1단계: OpenSearch 도메인 생성(대상 리전)

세분화된 액세스 제어가 활성화된 대상 리전에서 OpenSearch 도메인을 생성합니다. 액세스 정책의 범위를 계정 루트 또는 특정 IAM 보안 주체로 지정합니다.

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":"arn:aws:iam::account-id:root"},"Action":"es:ESHttp*","Resource":"arn:aws:es:target-region:account-id:domain/domain-name/*"}]}' \ --region target-region

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

2단계: OpenSearch UI 애플리케이션 생성(애플리케이션 리전)

교차 리전 데이터 소스를 사용하여 애플리케이션 리전에서 애플리케이션을 생성합니다. 리전은 데이터 소스 ARN에서 자동으로 추출됩니다.

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

3단계: 확인 및 액세스

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

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

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

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

  • 대상 도메인의 액세스 정책 및 백엔드 역할 매핑은 사용자가 액세스할 수 있는 데이터를 제어합니다.

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

이 시나리오에서는 한 리전에서 IAM Identity Center 인증을 사용하여 OpenSearch UI 애플리케이션을 생성하고 동일한 계정 내의 다른 리전에 있는 퍼블릭 OpenSearch 도메인에 연결합니다.

1단계: IAM Identity Center가 활성화된 OpenSearch 도메인 생성(대상 리전)

세분화된 액세스 제어 및 IAM Identity Center 통합이 활성화된 대상 리전에서 OpenSearch 도메인을 생성합니다. 와 함께 --identity-center-options 파라미터를 사용하여 IAM Identity Center 인스턴스가 위치한 리전을 IdentityCenterInstanceRegion 지정합니다. 이 리전은 OpenSearch UI 애플리케이션이 호스팅되는 리전과 동일해야 합니다.

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"}' \ --identity-center-options '{"EnabledAPIAccess":true,"IdentityCenterInstanceARN":"arn:aws:sso:::instance/ssoins-instance-id","IdentityCenterInstanceRegion":"idc-region","RolesKey":"GroupId","SubjectKey":"UserId"}' \ --access-policies '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"arn:aws:iam::account-id:role/NeoIdCAppRole"},"Action":"es:ESHttp*","Resource":"arn:aws:es:target-region:account-id:domain/domain-name/*"}]}' \ --region target-region

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

2단계: IAM Identity Center 애플리케이션에 대한 IAM 역할 생성

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

IAM Identity Center 애플리케이션 역할을 생성하려면
  1. sts:AssumeRole 문만 사용하여 신뢰 정책을 생성합니다. 다음 단계에서 애플리케이션을 생성한 후이 정책을 업데이트하여 sts:SetContext 문을 추가합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "application.opensearchservice.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. 권한 정책 생성:

    { "Version": "2012-10-17", "Statement": [{ "Sid": "OpenSearchDomain", "Effect": "Allow", "Action": ["es:ESHttp*"], "Resource": "arn:aws:es:target-region:account-id:domain/domain-name/*" }] }
  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

3단계: IAM Identity Center를 사용하여 OpenSearch UI 애플리케이션 생성(애플리케이션 리전)

참고

IAM Identity Center 인스턴스가 OpenSearch UI 애플리케이션 리전과 동일한 리전에 있는지 확인합니다.

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

애플리케이션을 생성한 후 응답의 SSO 애플리케이션 ID를 기록해 둡니다. 그런 다음 IAM Identity Center 애플리케이션 역할의 신뢰 정책을 업데이트하여 sts:SetContext 문을 추가합니다.

{ "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::account-id:oidc-provider/portal.sso.idc-region.amazonaws.com/apl/application-id" } } } ] }
aws iam update-assume-role-policy \ --role-name NeoIdCAppRole \ --policy-document file://updated-trust-policy.json

4단계: 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::account-id:application/ssoins-instance-id/apl-application-id" \ --principal-id user-id-or-group-id \ --principal-type USER
대상 도메인에서 백엔드 역할 매핑 구성

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

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

5단계: 확인 및 액세스

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

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

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

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

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

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

이 시나리오에서는 한 리전에서 OpenSearch UI 애플리케이션을 생성하고 동일한 계정 내의 다른 리전에 있는 VPC OpenSearch 도메인에 연결합니다. VPC 도메인에는 리전 간 지원을 통해 추가 네트워크 구성 및 명시적 VPC 엔드포인트 권한이 필요합니다.

1단계: VPC(대상 리전) 설정

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

# Create VPC aws ec2 create-vpc \ --cidr-block 10.0.0.0/16 \ --region target-region # Create subnet aws ec2 create-subnet \ --vpc-id vpc-id \ --cidr-block 10.0.1.0/24 \ --availability-zone target-regiona \ --region target-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 target-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 target-region

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

2단계: 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":"arn:aws:iam::account-id:root"},"Action":"es:ESHttp*","Resource":"arn:aws:es:target-region:account-id:domain/vpc-domain-name/*"}]}' \ --region target-region

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

3단계: 교차 리전 지원을 통해 OpenSearch UI 서비스 보안 주체에 대한 VPC 엔드포인트 권한 부여(대상 리전)

# Authorize the service principal with cross-region support aws opensearch authorize-vpc-endpoint-access \ --domain-name vpc-domain-name \ --service "application.opensearchservice.amazonaws.com" \ --service-options '{"SupportedRegions":["target-region","application-region"]}' \ --region target-region # Verify authorization aws opensearch list-vpc-endpoint-access \ --domain-name vpc-domain-name \ --region target-region

예상 응답:

{ "AuthorizedPrincipalList": [ { "PrincipalType": "AWS_SERVICE", "Principal": "application.opensearchservice.amazonaws.com", "ServiceOptions": { "SupportedRegions": ["target-region", "application-region"] } } ] }

4단계: OpenSearch UI 애플리케이션 생성(애플리케이션 리전)

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

5단계: 확인 및 액세스

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

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

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

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

  • 대상 도메인의 액세스 정책 및 백엔드 역할 매핑은 사용자가 액세스할 수 있는 데이터를 제어합니다.

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

이 시나리오에서는 한 리전에서 IAM Identity Center 인증을 사용하여 OpenSearch UI 애플리케이션을 생성하고 동일한 계정 내의 다른 리전에 있는 VPC OpenSearch 도메인에 연결합니다.

1단계: VPC(대상 리전) 설정

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

# Create VPC aws ec2 create-vpc \ --cidr-block 10.0.0.0/16 \ --region target-region # Create subnet aws ec2 create-subnet \ --vpc-id vpc-id \ --cidr-block 10.0.1.0/24 \ --availability-zone target-regiona \ --region target-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 target-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 target-region

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

2단계: IAM Identity Center가 활성화된 VPC 도메인 생성(대상 리전)

세분화된 액세스 제어, IAM Identity Center 통합 및 VPC 구성이 활성화된 대상 리전에서 OpenSearch 도메인을 생성합니다. IAM Identity Center 애플리케이션 역할을 허용하도록 액세스 정책을 업데이트하고 --identity-center-options 파라미터를 추가합니다.

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"}' \ --identity-center-options '{"EnabledAPIAccess":true,"IdentityCenterInstanceARN":"arn:aws:sso:::instance/ssoins-instance-id","IdentityCenterInstanceRegion":"idc-region","RolesKey":"GroupId","SubjectKey":"UserId"}' \ --access-policies '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"arn:aws:iam::account-id:role/NeoIdCAppRole"},"Action":"es:ESHttp*","Resource":"arn:aws:es:target-region:account-id:domain/vpc-domain-name/*"}]}' \ --region target-region

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

3단계: 교차 리전 지원을 통해 OpenSearch UI 서비스 보안 주체에 대한 VPC 엔드포인트 권한 부여(대상 리전)

중요

이는 리전 간 액세스 권한이 있는 VPC 도메인에 고유한 중요한 단계입니다. OpenSearch UI 서비스는 VPC 엔드포인트에 액세스할 수 있는 명시적 권한이 있어야 하며 SupportedRegions 목록에 애플리케이션 리전을 포함해야 합니다.

# Authorize the service principal with cross-region support aws opensearch authorize-vpc-endpoint-access \ --domain-name vpc-domain-name \ --service "application.opensearchservice.amazonaws.com" \ --service-options '{"SupportedRegions":["target-region","application-region"]}' \ --region target-region # Verify authorization aws opensearch list-vpc-endpoint-access \ --domain-name vpc-domain-name \ --region target-region

예상 응답:

{ "AuthorizedPrincipalList": [ { "PrincipalType": "AWS_SERVICE", "Principal": "application.opensearchservice.amazonaws.com", "ServiceOptions": { "SupportedRegions": ["target-region", "application-region"] } } ] }

4단계: IAM Identity Center 애플리케이션에 대한 IAM 역할 생성

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

IAM Identity Center 애플리케이션 역할을 생성하려면
  1. sts:AssumeRole 문만 사용하여 신뢰 정책을 생성합니다. 다음 단계에서 애플리케이션을 생성한 후 sts:SetContext 문을 추가하도록이 정책을 업데이트합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "application.opensearchservice.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. 권한 정책 생성:

    { "Version": "2012-10-17", "Statement": [{ "Sid": "OpenSearchDomain", "Effect": "Allow", "Action": ["es:ESHttp*"], "Resource": "arn:aws:es:target-region:account-id:domain/vpc-domain-name/*" }] }
  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

5단계: IAM Identity Center를 사용하여 OpenSearch UI 애플리케이션 생성(애플리케이션 리전)

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

애플리케이션을 생성한 후 응답의 SSO 애플리케이션 ID를 기록해 둡니다. 그런 다음 IAM Identity Center 애플리케이션 역할의 신뢰 정책을 업데이트하여 sts:SetContext 문을 추가합니다.

{ "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::account-id:oidc-provider/portal.sso.idc-region.amazonaws.com/apl/application-id" } } } ] }
aws iam update-assume-role-policy \ --role-name NeoIdCAppRole \ --policy-document file://updated-trust-policy.json

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

와 동일한 단계에 따라 사용자, 그룹을 4단계: IAM Identity Center 사용자 및 그룹 생성 및 할당 생성하고 애플리케이션에 할당하며 대상 도메인에서 백엔드 역할 매핑을 구성합니다.

7단계: 확인 및 액세스

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

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

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

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

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

애플리케이션 관리

리전 간 데이터 소스로 애플리케이션 업데이트

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

aws opensearch update-application \ --region application-region \ --id application-id \ --data-sources '[{ "dataSourceArn":"arn:aws:es:target-region-1:account-id:domain/domain-1", "dataSourceDescription":"Domain in target Region 1" },{ "dataSourceArn":"arn:aws:es:target-region-2:account-id:domain/domain-2", "dataSourceDescription":"Domain in target Region 2" }]'
중요

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

애플리케이션 나열

다음 명령을 실행합니다.

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

다음 명령을 실행합니다.

aws opensearch delete-application \ --region application-region \ --id application-id
특정 리전에 대한 VPC 엔드포인트 액세스 취소

다른를 유지하면서 특정 AWS 리전에 대한 리전 간 액세스를 취소하려면 --service-options 파라미터를 리전과 함께 사용하여 취소합니다.

aws opensearch revoke-vpc-endpoint-access \ --domain-name vpc-domain-name \ --service "application.opensearchservice.amazonaws.com" \ --service-options '{"SupportedRegions":["region-to-revoke"]}' \ --region target-region

빠른 참조

다음 표에는 도메인 유형, 인증 방법, 동일 리전 액세스와 교차 리전 액세스 간의 주요 차이점이 요약되어 있습니다.

퍼블릭 도메인과 VPC 도메인 비교
속성 퍼블릭 도메인 VPC 도메인
VPC 엔드포인트 권한 부여 불필요 필수 -에서 application.opensearchservice.amazonaws.com를 승인해야 합니다. SupportedRegions
네트워크 설정 없음 HTTPS(443) 인바운드가 있는 VPC, 서브넷, 보안 그룹
IAM 액세스 정책 필수 필수
IAM 사용자와 IAM Identity Center 사용자 비교
속성 IAM 사용자 IAM Identity Center 사용자
데이터 영역 자격 증명 사용자의 자체 IAM 자격 증명 IAM Identity Center 애플리케이션 역할
액세스 관리 도메인 액세스 정책 및 백엔드 역할 매핑 도메인 액세스 정책 및 백엔드 역할 매핑
애플리케이션 리전 제약 조건 모든 리전 IAM Identity Center 인스턴스와 동일한 리전에 있어야 합니다.
도메인 구성 표준 에 필요 --identity-center-options IdentityCenterInstanceRegion
추가 설정 없음 IAM Identity Center 애플리케이션 역할, 사용자/그룹 생성, 애플리케이션 할당, 백엔드 역할 매핑
교차 리전과 동일한 리전 비교
속성 동일 리전 교차 리전
데이터 소스 ARN 애플리케이션과 동일한 리전 애플리케이션과 다른 리전(동일한 파티션)
VPC 엔드포인트 권한 부여 생략 --service-options --service-options에 포함 SupportedRegions
IAM Identity Center 도메인 구성 IdentityCenterInstanceRegion 선택 사항 IdentityCenterInstanceRegion 필수
파티션 간 지원 해당 사항 없음 지원되지 않음 - 데이터 소스가 동일한 파티션에 있어야 합니다.

중요 정보

  • 교차 리전 데이터 소스 연결을 사용하려면 대상 도메인에서 세분화된 액세스 제어를 활성화해야 합니다.

  • 교차 리전 데이터 소스는 동일한 파티션 내에 있어야 합니다. 파티션 간 액세스(예:에서 awsaws-cn)는 지원되지 않습니다.

  • 데이터 소스 리전은 데이터 소스 ARN에서 자동으로 추출됩니다. CreateApplication 또는 UpdateApplication APIs.

  • 동일 계정 교차 리전 데이터 소스의 경우 iamRoleForDataSourceArn는 필요하지 않습니다. 교차 계정 데이터 소스에만 필요합니다.

  • VPC 도메인의 경우를 호출할 때 SupportedRegions 파라미터에 애플리케이션 리전을 포함해야 합니다AuthorizeVpcEndpointAccess. 생략하면 동일한 리전 액세스만 --service-options 승인됩니다.

  • IAM Identity Center 흐름의 경우 OpenSearch UI 애플리케이션은 IAM Identity Center 인스턴스와 동일한 리전에 있어야 합니다.

  • 교차 리전 도메인이 있는 IAM Identity Center 흐름의 경우 교차 리전 토큰 내부 검사를 활성화--identity-center-options하려면 대상 도메인IdentityCenterInstanceRegion이에 포함되어야 합니다.

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

문제 해결

문제 해결 방법
"도메인에 액세스할 수 없음"으로 애플리케이션 생성 실패 도메인이 대상 리전에 있고 세분화된 액세스 제어가 활성화되어 있는지 확인합니다. 교차 계정 시나리오의 경우 교차 계정 역할에 es:DescribeDomain 권한이 있고 신뢰 정책에서 소스 계정을 허용하는지 확인합니다.
교차 리전에 대한 VPC 도메인 액세스 실패 에 포함된 애플리케이션 리전application.opensearchservice.amazonaws.com을 사용하여 VPC 엔드포인트에에 대한 권한이 부여되었는지 확인합니다SupportedRegions.
IAM 사용자에 대한 데이터 영역 액세스 거부 대상 도메인 액세스 정책이 IAM 사용자 또는 역할 보안 주체를 허용하고 세분화된 액세스 제어 백엔드 역할 매핑이 적절한 권한을 부여하는지 확인합니다.
IAM Identity Center 사용자에 대한 데이터 영역 액세스 거부 백엔드 역할 매핑에 IAM Identity Center 그룹 IDIdentityCenterInstanceRegion가 포함되어 있고, 도메인 정책이 IAM Identity Center 애플리케이션 역할을 허용하며, 도메인의 OpenSearch UI 애플리케이션과 동일한 리전으로 올바르게 설정되어 있는지 확인합니다.
파티션 간 데이터 소스 거부됨 파티션 간 액세스는 지원되지 않습니다. 데이터 소스 ARN이 애플리케이션과 동일한 파티션에 있는지 확인합니다.
리전 간 도메인에 대한 IAM Identity Center 인증 실패 IdentityCenterInstanceRegion가 IAM Identity Center 인스턴스가 활성화된 올바른 리전으로 설정되어 있는지 확인합니다. OpenSearch UI 애플리케이션도 동일한 리전에 있어야 합니다.