기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
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-namedomain-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/*"}]}' \ --regiontarget-region
계속하기 Active 전에 도메인 상태가 될 때까지 기다립니다.
2단계: OpenSearch UI 애플리케이션 생성(애플리케이션 리전)
교차 리전 데이터 소스를 사용하여 애플리케이션 리전에서 애플리케이션을 생성합니다. 리전은 데이터 소스 ARN에서 자동으로 추출됩니다.
aws opensearch create-application \ --regionapplication-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 \ --regionapplication-region\ --idapplication-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-namedomain-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/*"}]}' \ --regiontarget-region
계속하기 Active 전에 도메인 상태가 될 때까지 기다립니다.
2단계: IAM Identity Center 애플리케이션에 대한 IAM 역할 생성
OpenSearch UI가 IAM Identity Center 사용자 데이터 영역 액세스에 사용하는 IAM 역할을 생성합니다.
IAM Identity Center 애플리케이션 역할을 생성하려면
-
sts:AssumeRole문만 사용하여 신뢰 정책을 생성합니다. 다음 단계에서 애플리케이션을 생성한 후이 정책을 업데이트하여sts:SetContext문을 추가합니다.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "application.opensearchservice.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } -
권한 정책 생성:
{ "Version": "2012-10-17", "Statement": [{ "Sid": "OpenSearchDomain", "Effect": "Allow", "Action": ["es:ESHttp*"], "Resource": "arn:aws:es:target-region:account-id:domain/domain-name/*" }] } -
역할을 생성하고 정책을 연결합니다.
aws iam create-role \ --role-nameNeoIdCAppRole\ --assume-role-policy-document file://neoidc-trust-policy.jsonaws iam put-role-policy \ --role-nameNeoIdCAppRole\ --policy-nameNeoIdCAppPermissions\ --policy-document file://neoidc-permissions-policy.json
3단계: IAM Identity Center를 사용하여 OpenSearch UI 애플리케이션 생성(애플리케이션 리전)
참고
IAM Identity Center 인스턴스가 OpenSearch UI 애플리케이션 리전과 동일한 리전에 있는지 확인합니다.
aws opensearch create-application \ --regionapplication-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-nameNeoIdCAppRole\ --policy-document file://updated-trust-policy.json
4단계: IAM Identity Center 사용자 및 그룹 생성 및 할당
IAM Identity Center 사용자 생성
다음 명령을 실행합니다. 자리 표시자를 자신의 정보로 바꿉니다.
aws identitystore create-user \ --identity-store-idd-directory-id\ --user-nameuser-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-idd-directory-id\ --display-name "OpenSearchUsers" \ --description "Users with OpenSearch access" aws identitystore create-group-membership \ --identity-store-idd-directory-id\ --group-idgroup-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-iduser-id-or-group-id\ --principal-typeUSER
대상 도메인에서 백엔드 역할 매핑 구성
IAM Identity Center 그룹을 대상 도메인의 OpenSearch 보안 역할에 매핑합니다.
curl -XPATCH "https://domain-endpoint/_plugins/_security/api/rolesmapping/all_access" \ -uadmin:master-password\ -H 'Content-Type: application/json' \ -d '[{"op": "add", "path": "/backend_roles", "value": ["group-id"]}]'
5단계: 확인 및 액세스
애플리케이션 세부 정보를 검색하여 엔드포인트 URL을 가져옵니다.
aws opensearch get-application \ --regionapplication-region\ --idapplication-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 \ --regiontarget-region# Create subnet aws ec2 create-subnet \ --vpc-idvpc-id\ --cidr-block 10.0.1.0/24 \ --availability-zonetarget-regiona \ --regiontarget-region# Create security group aws ec2 create-security-group \ --group-nameopensearch-vpc-sg\ --description "Security group for OpenSearch VPC domain" \ --vpc-idvpc-id\ --regiontarget-region# Allow inbound HTTPS aws ec2 authorize-security-group-ingress \ --group-idsecurity-group-id\ --protocol tcp \ --port 443 \ --cidr 10.0.0.0/16 \ --regiontarget-region
VPC 도메인 생성에 대해 자세히 알아봅니다.
2단계: VPC 도메인 생성(대상 리전)
aws opensearch create-domain \ --domain-namevpc-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/*"}]}' \ --regiontarget-region
계속하기 Active 전에 도메인 상태가 될 때까지 기다립니다.
3단계: 교차 리전 지원을 통해 OpenSearch UI 서비스 보안 주체에 대한 VPC 엔드포인트 권한 부여(대상 리전)
# Authorize the service principal with cross-region support aws opensearch authorize-vpc-endpoint-access \ --domain-namevpc-domain-name\ --service "application.opensearchservice.amazonaws.com" \ --service-options '{"SupportedRegions":["target-region","application-region"]}' \ --regiontarget-region# Verify authorization aws opensearch list-vpc-endpoint-access \ --domain-namevpc-domain-name\ --regiontarget-region
예상 응답:
{ "AuthorizedPrincipalList": [ { "PrincipalType": "AWS_SERVICE", "Principal": "application.opensearchservice.amazonaws.com", "ServiceOptions": { "SupportedRegions": ["target-region", "application-region"] } } ] }
4단계: OpenSearch UI 애플리케이션 생성(애플리케이션 리전)
aws opensearch create-application \ --regionapplication-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 \ --regionapplication-region\ --idapplication-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 \ --regiontarget-region# Create subnet aws ec2 create-subnet \ --vpc-idvpc-id\ --cidr-block 10.0.1.0/24 \ --availability-zonetarget-regiona \ --regiontarget-region# Create security group aws ec2 create-security-group \ --group-nameopensearch-vpc-sg\ --description "Security group for OpenSearch VPC domain" \ --vpc-idvpc-id\ --regiontarget-region# Allow inbound HTTPS aws ec2 authorize-security-group-ingress \ --group-idsecurity-group-id\ --protocol tcp \ --port 443 \ --cidr 10.0.0.0/16 \ --regiontarget-region
VPC 도메인 생성에 대해 자세히 알아봅니다.
2단계: IAM Identity Center가 활성화된 VPC 도메인 생성(대상 리전)
세분화된 액세스 제어, IAM Identity Center 통합 및 VPC 구성이 활성화된 대상 리전에서 OpenSearch 도메인을 생성합니다. IAM Identity Center 애플리케이션 역할을 허용하도록 액세스 정책을 업데이트하고 --identity-center-options 파라미터를 추가합니다.
aws opensearch create-domain \ --domain-namevpc-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/*"}]}' \ --regiontarget-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-namevpc-domain-name\ --service "application.opensearchservice.amazonaws.com" \ --service-options '{"SupportedRegions":["target-region","application-region"]}' \ --regiontarget-region# Verify authorization aws opensearch list-vpc-endpoint-access \ --domain-namevpc-domain-name\ --regiontarget-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 애플리케이션 역할을 생성하려면
-
sts:AssumeRole문만 사용하여 신뢰 정책을 생성합니다. 다음 단계에서 애플리케이션을 생성한 후sts:SetContext문을 추가하도록이 정책을 업데이트합니다.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "application.opensearchservice.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } -
권한 정책 생성:
{ "Version": "2012-10-17", "Statement": [{ "Sid": "OpenSearchDomain", "Effect": "Allow", "Action": ["es:ESHttp*"], "Resource": "arn:aws:es:target-region:account-id:domain/vpc-domain-name/*" }] } -
역할을 생성하고 정책을 연결합니다.
aws iam create-role \ --role-nameNeoIdCAppRole\ --assume-role-policy-document file://neoidc-trust-policy.jsonaws iam put-role-policy \ --role-nameNeoIdCAppRole\ --policy-nameNeoIdCAppPermissions\ --policy-document file://neoidc-permissions-policy.json
5단계: IAM Identity Center를 사용하여 OpenSearch UI 애플리케이션 생성(애플리케이션 리전)
aws opensearch create-application \ --regionapplication-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-nameNeoIdCAppRole\ --policy-document file://updated-trust-policy.json
6단계: IAM Identity Center 사용자 및 그룹 생성 및 할당
와 동일한 단계에 따라 사용자, 그룹을 4단계: IAM Identity Center 사용자 및 그룹 생성 및 할당 생성하고 애플리케이션에 할당하며 대상 도메인에서 백엔드 역할 매핑을 구성합니다.
7단계: 확인 및 액세스
애플리케이션 세부 정보를 검색하여 엔드포인트 URL을 가져옵니다.
aws opensearch get-application \ --regionapplication-region\ --idapplication-id
-
애플리케이션 엔드포인트 URL로 이동합니다.
-
IAM Identity Center 사용자 자격 증명으로 로그인합니다.
-
IAM Identity Center 사용자의 데이터 요청은 IAM Identity Center 애플리케이션 역할로 서명됩니다.
-
도메인의 백엔드 역할 매핑은 데이터 액세스 권한을 제어합니다.
애플리케이션 관리
리전 간 데이터 소스로 애플리케이션 업데이트
다음 명령을 실행합니다. 자리 표시자를 자신의 정보로 바꿉니다.
aws opensearch update-application \ --regionapplication-region\ --idapplication-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 \ --regionapplication-region
애플리케이션 삭제
다음 명령을 실행합니다.
aws opensearch delete-application \ --regionapplication-region\ --idapplication-id
특정 리전에 대한 VPC 엔드포인트 액세스 취소
다른를 유지하면서 특정 AWS 리전에 대한 리전 간 액세스를 취소하려면 --service-options 파라미터를 리전과 함께 사용하여 취소합니다.
aws opensearch revoke-vpc-endpoint-access \ --domain-namevpc-domain-name\ --service "application.opensearchservice.amazonaws.com" \ --service-options '{"SupportedRegions":["region-to-revoke"]}' \ --regiontarget-region
빠른 참조
다음 표에는 도메인 유형, 인증 방법, 동일 리전 액세스와 교차 리전 액세스 간의 주요 차이점이 요약되어 있습니다.
| 속성 | 퍼블릭 도메인 | VPC 도메인 |
|---|---|---|
| VPC 엔드포인트 권한 부여 | 불필요 | 필수 -에서 application.opensearchservice.amazonaws.com를 승인해야 합니다. SupportedRegions |
| 네트워크 설정 | 없음 | HTTPS(443) 인바운드가 있는 VPC, 서브넷, 보안 그룹 |
| IAM 액세스 정책 | 필수 | 필수 |
| 속성 | 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 필수 |
| 파티션 간 지원 | 해당 사항 없음 | 지원되지 않음 - 데이터 소스가 동일한 파티션에 있어야 합니다. |
중요 정보
-
교차 리전 데이터 소스 연결을 사용하려면 대상 도메인에서 세분화된 액세스 제어를 활성화해야 합니다.
-
교차 리전 데이터 소스는 동일한 파티션 내에 있어야 합니다. 파티션 간 액세스(예:에서
aws로aws-cn)는 지원되지 않습니다. -
데이터 소스 리전은 데이터 소스 ARN에서 자동으로 추출됩니다.
CreateApplication또는UpdateApplicationAPIs. -
동일 계정 교차 리전 데이터 소스의 경우
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 애플리케이션도 동일한 리전에 있어야 합니다. |