기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
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 역할을 대상 계정에 생성합니다.
교차 계정 역할을 생성하려면
-
소스 계정이 역할을 수임하도록 허용하는 신뢰 정책을 생성합니다.
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] } -
역할을 생성합니다.
aws iam create-role \ --role-nameOpenSearchUIAccessRole\ --assume-role-policy-document file://trust-policy.json -
es:DescribeDomain작업만 사용하여 권한 정책을 생성합니다.{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] } -
역할에 권한 정책 연결:
aws iam put-role-policy \ --role-nameOpenSearchUIAccessRole\ --policy-nameValidationOnly\ --policy-document file://permissions-policy.json
2단계: OpenSearch 도메인(대상 계정) 생성
세분화된 액세스 제어 및 암호화가 활성화된 대상 계정에서 OpenSearch 도메인을 생성합니다.
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":"*"},"Action":"es:ESHttp*","Resource":"arn:aws:es:region:target-account-id:domain/domain-name/*"}]}' \ --regionregion
계속하기 Active 전에 도메인 상태가 될 때까지 기다립니다.
3단계: OpenSearch UI 애플리케이션 생성(소스 계정)
교차 계정 데이터 소스를 사용하여 소스 계정에서 애플리케이션을 생성합니다.
aws opensearch create-application \ --regionregion\ --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 \ --regionregion\ --idapplication-id
-
응답에서 애플리케이션 엔드포인트 URL로 이동합니다.
-
IAM 자격 증명으로 로그인합니다.
-
IAM 사용자는 자신의 자격 증명으로 데이터 영역 요청에 서명합니다.
-
대상 도메인 액세스 정책은 사용자가 액세스할 수 있는 데이터를 제어합니다.
시나리오 2: 퍼블릭 도메인에 액세스하는 IAM Identity Center 사용자
1단계: 교차 계정 IAM 역할 생성(대상 계정)
소스 계정이 도메인 검증을 위해 수임하도록 허용하는 IAM 역할을 대상 계정에 생성합니다.
교차 계정 역할을 생성하려면
-
소스 계정이 역할을 수임하도록 허용하는 신뢰 정책을 생성합니다.
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] } -
역할을 생성합니다.
aws iam create-role \ --role-nameOpenSearchUIAccessRole\ --assume-role-policy-document file://trust-policy.json -
es:DescribeDomain작업만 사용하여 권한 정책을 생성합니다.{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] } -
역할에 권한 정책 연결:
aws iam put-role-policy \ --role-nameOpenSearchUIAccessRole\ --policy-nameValidationOnly\ --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 애플리케이션 역할을 생성하려면
-
신뢰 정책 생성:
{ "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" } } } ] } -
권한 정책 생성:
{ "Version": "2012-10-17", "Statement": [{ "Sid": "OpenSearchDomain", "Effect": "Allow", "Action": ["es:ESHttp*"], "Resource": "*" }] } -
역할을 생성하고 정책을 연결합니다.
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
4단계: IAM Identity Center를 사용하여 OpenSearch UI 애플리케이션 생성(소스 계정)
aws opensearch create-application \ --regionregion\ --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-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:::source-account-id:application/ssoins-instance-id/apl-application-id" \ --principal-iduser-id-or-group-id\ --principal-typeUSER
대상 도메인에서 백엔드 역할 매핑 구성
IAM Identity Center 그룹을 대상 도메인의 OpenSearch 보안 역할에 매핑합니다.
curl -XPUT "https://domain-endpoint/_plugins/_security/api/rolesmapping/all_access" \ -uadmin:master-password\ -H 'Content-Type: application/json' \ -d '{ "backend_roles": ["group-id"], "hosts": [], "users": [] }'
6단계: 확인 및 액세스
aws opensearch get-application \ --regionregion\ --idapplication-id
-
애플리케이션 엔드포인트 URL로 이동합니다.
-
IAM Identity Center 사용자 자격 증명으로 로그인합니다.
-
IAM Identity Center 사용자의 데이터 요청은 교차 계정 역할이 아닌 IAM Identity Center 애플리케이션 역할로 서명됩니다.
-
도메인의 백엔드 역할 매핑은 데이터 액세스 권한을 제어합니다.
시나리오 3: VPC 도메인에 액세스하는 IAM 사용자
1단계: 교차 계정 IAM 역할 생성(대상 계정)
소스 계정이 도메인 검증을 위해 수임하도록 허용하는 IAM 역할을 대상 계정에 생성합니다.
교차 계정 역할을 생성하려면
-
소스 계정이 역할을 수임하도록 허용하는 신뢰 정책을 생성합니다.
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] } -
역할을 생성합니다.
aws iam create-role \ --role-nameOpenSearchUIAccessRole\ --assume-role-policy-document file://trust-policy.json -
es:DescribeDomain작업만 사용하여 권한 정책을 생성합니다.{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] } -
역할에 권한 정책 연결:
aws iam put-role-policy \ --role-nameOpenSearchUIAccessRole\ --policy-nameValidationOnly\ --policy-document file://permissions-policy.json
2단계: VPC(대상 계정) 설정
대상 계정에 VPC가 이미 있는 경우이 단계를 건너뜁니다.
# Create VPC aws ec2 create-vpc \ --cidr-block 10.0.0.0/16 \ --regionregion# Create subnet aws ec2 create-subnet \ --vpc-idvpc-id\ --cidr-block 10.0.1.0/24 \ --availability-zoneregiona \ --regionregion# Create security group aws ec2 create-security-group \ --group-nameopensearch-vpc-sg\ --description "Security group for OpenSearch VPC domain" \ --vpc-idvpc-id\ --regionregion# Allow inbound HTTPS aws ec2 authorize-security-group-ingress \ --group-idsecurity-group-id\ --protocol tcp \ --port 443 \ --cidr 10.0.0.0/16 \ --regionregion
VPC 도메인 생성에 대해 자세히 알아봅니다.
3단계: 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":"*"},"Action":"es:ESHttp*","Resource":"arn:aws:es:region:target-account-id:domain/vpc-domain-name/*"}]}' \ --regionregion
계속하기 Active 전에 도메인 상태가 될 때까지 기다립니다.
4단계: OpenSearch UI 서비스 보안 주체(대상 계정)에 대한 VPC 엔드포인트 권한 부여
중요
이는 VPC 도메인에 고유한 중요한 단계입니다. OpenSearch UI 서비스는 VPC 엔드포인트에 액세스할 수 있는 명시적 권한이 있어야 합니다.
# Authorize the service principal aws opensearch authorize-vpc-endpoint-access \ --domain-namevpc-domain-name\ --service "application.opensearchservice.amazonaws.com" \ --regionregion# Verify authorization aws opensearch list-vpc-endpoint-access \ --domain-namevpc-domain-name\ --regionregion
예상 응답:
{ "AuthorizedPrincipalList": [ { "PrincipalType": "AWS_SERVICE", "Principal": "application.opensearchservice.amazonaws.com" } ] }
5단계: OpenSearch UI 애플리케이션 생성(소스 계정)
aws opensearch create-application \ --regionregion\ --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 \ --regionregion\ --idapplication-id
-
응답에서 애플리케이션 엔드포인트 URL로 이동합니다.
-
IAM 자격 증명으로 로그인합니다.
-
IAM 사용자는 자신의 자격 증명으로 데이터 영역 요청에 서명합니다.
-
대상 도메인 액세스 정책은 사용자가 액세스할 수 있는 데이터를 제어합니다.
시나리오 4: VPC 도메인에 액세스하는 IAM Identity Center 사용자
1단계: 교차 계정 IAM 역할 생성(대상 계정)
소스 계정이 도메인 검증을 위해 수임하도록 허용하는 IAM 역할을 대상 계정에 생성합니다.
교차 계정 역할을 생성하려면
-
소스 계정이 역할을 수임하도록 허용하는 신뢰 정책을 생성합니다.
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] } -
역할을 생성합니다.
aws iam create-role \ --role-nameOpenSearchUIAccessRole\ --assume-role-policy-document file://trust-policy.json -
es:DescribeDomain작업만 사용하여 권한 정책을 생성합니다.{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] } -
역할에 권한 정책 연결:
aws iam put-role-policy \ --role-nameOpenSearchUIAccessRole\ --policy-nameValidationOnly\ --policy-document file://permissions-policy.json
2단계: VPC(대상 계정) 설정
대상 계정에 VPC가 이미 있는 경우이 단계를 건너뜁니다.
# Create VPC aws ec2 create-vpc \ --cidr-block 10.0.0.0/16 \ --regionregion# Create subnet aws ec2 create-subnet \ --vpc-idvpc-id\ --cidr-block 10.0.1.0/24 \ --availability-zoneregiona \ --regionregion# Create security group aws ec2 create-security-group \ --group-nameopensearch-vpc-sg\ --description "Security group for OpenSearch VPC domain" \ --vpc-idvpc-id\ --regionregion# Allow inbound HTTPS aws ec2 authorize-security-group-ingress \ --group-idsecurity-group-id\ --protocol tcp \ --port 443 \ --cidr 10.0.0.0/16 \ --regionregion
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-namevpc-domain-name\ --service "application.opensearchservice.amazonaws.com" \ --regionregion# Verify authorization aws opensearch list-vpc-endpoint-access \ --domain-namevpc-domain-name\ --regionregion
예상 응답:
{ "AuthorizedPrincipalList": [ { "PrincipalType": "AWS_SERVICE", "Principal": "application.opensearchservice.amazonaws.com" } ] }
5단계: IAM Identity Center 애플리케이션에 대한 IAM 역할 생성(소스 계정)
OpenSearch UI가 IAM Identity Center 사용자 데이터 영역 액세스에 사용하는 소스 계정에서 IAM 역할을 생성합니다.
IAM Identity Center 애플리케이션 역할을 생성하려면
-
신뢰 정책 생성:
{ "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" } } } ] } -
권한 정책 생성:
{ "Version": "2012-10-17", "Statement": [{ "Sid": "OpenSearchDomain", "Effect": "Allow", "Action": ["es:ESHttp*"], "Resource": "*" }] } -
역할을 생성하고 정책을 연결합니다.
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
6단계: IAM Identity Center를 사용하여 OpenSearch UI 애플리케이션 생성(소스 계정)
aws opensearch create-application \ --regionregion\ --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-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:::source-account-id:application/ssoins-instance-id/apl-application-id" \ --principal-iduser-id-or-group-id\ --principal-typeUSER
대상 도메인에서 백엔드 역할 매핑 구성
IAM Identity Center 그룹을 대상 도메인의 OpenSearch 보안 역할에 매핑합니다.
curl -XPUT "https://domain-endpoint/_plugins/_security/api/rolesmapping/all_access" \ -uadmin:master-password\ -H 'Content-Type: application/json' \ -d '{ "backend_roles": ["group-id"], "hosts": [], "users": [] }'
8단계: 확인 및 액세스
aws opensearch get-application \ --regionregion\ --idapplication-id
-
애플리케이션 엔드포인트 URL로 이동합니다.
-
IAM Identity Center 사용자 자격 증명으로 로그인합니다.
-
IAM Identity Center 사용자의 데이터 요청은 교차 계정 역할이 아닌 IAM Identity Center 애플리케이션 역할로 서명됩니다.
-
도메인의 백엔드 역할 매핑은 데이터 액세스 권한을 제어합니다.
애플리케이션 관리
교차 계정 데이터 소스로 애플리케이션 업데이트
다음 명령을 실행합니다. 자리 표시자를 자신의 정보로 바꿉니다.
aws opensearch update-application \ --regionregion\ --idapplication-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 \ --regionregion
애플리케이션 삭제
다음 명령을 실행합니다.
aws opensearch delete-application \ --regionregion\ --idapplication-id
VPC 엔드포인트 액세스 취소
다음 명령을 실행합니다.
aws opensearch revoke-vpc-endpoint-access \ --domain-namevpc-domain-name\ --service "application.opensearchservice.amazonaws.com" \ --regionregion
빠른 참조
다음 표에는 도메인 유형과 인증 방법 간의 주요 차이점이 요약되어 있습니다.
| 속성 | 퍼블릭 도메인 | VPC 도메인 |
|---|---|---|
| VPC 엔드포인트 권한 부여 | 불필요 | 필수 -가 권한을 부여해야 합니다. application.opensearchservice.amazonaws.com |
| 네트워크 설정 | 없음 | HTTPS(443) 인바운드가 있는 VPC, 서브넷, 보안 그룹 |
| IAM 액세스 정책 | 필수 | 필수 |
| 교차 계정 역할 | 교차 계정에 필요 | 교차 계정에 필요 |
| 속성 | 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. |