View a markdown version of this page

Akses data lintas akun ke domain OpenSearch - OpenSearch Layanan Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Akses data lintas akun ke domain OpenSearch

Anda dapat mengonfigurasi aplikasi OpenSearch UI Anda dalam satu akun untuk mengakses OpenSearch domain di akun yang berbeda. Saat Anda membuat aplikasi OpenSearch UI dengan sumber data lintas akun, Anda memberikan iamRoleForDataSourceArn yang menunjuk ke peran IAM di akun target. OpenSearch UI memvalidasi permintaan dengan mengasumsikan peran ini dan memanggil es:DescribeDomain untuk memverifikasi aksesibilitas domain. Peran lintas akun hanya digunakan untuk validasi bidang kontrol. Akses pesawat data dikendalikan secara terpisah oleh kebijakan akses domain target.

Kode sampel

Contoh kode dalam topik ini hanya untuk tujuan ilustrasi. Mereka menunjukkan fungsionalitas dasar dan mungkin tidak termasuk penanganan kesalahan, praktik terbaik keamanan, atau fitur siap produksi. Sebelum menggunakan kode sampel dalam produksi, tinjau dan modifikasi untuk memenuhi persyaratan spesifik Anda, dan uji secara menyeluruh di lingkungan Anda.

Konsep utama

Akun sumber

Yang Akun AWS meng-host aplikasi OpenSearch UI Anda.

Akun target

Di Akun AWS mana OpenSearch domain berada.

Peran lintas akun

Peran IAM dalam akun target yang digunakan untuk validasi bidang kontrol saja. Peran ini hanya membutuhkan es:DescribeDomain izin.

Peran aplikasi IAM Identity Center

Peran IAM dalam akun sumber yang digunakan untuk akses pesawat data pengguna IAM Identity Center.

Prasyarat

Sebelum Anda mengatur akses data lintas akun, pastikan Anda memiliki yang berikut:

  • AWS CLI diinstal dan dikonfigurasi

  • Akses ke sumber dan target Akun AWS s

  • Untuk alur Pusat Identitas IAM: Sebuah instance AWS IAM Identity Center organisasi

Skenario

Pilih skenario yang cocok dengan metode otentikasi dan konfigurasi domain Anda:

Skenario 1: Pengguna IAM mengakses domain publik

Langkah 1: Buat peran IAM lintas akun (akun target)

Buat peran IAM di akun target yang memungkinkan akun sumber untuk menganggapnya sebagai validasi domain.

Untuk membuat peran lintas akun
  1. Buat kebijakan kepercayaan yang memungkinkan akun sumber untuk mengambil peran:

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] }
  2. Buat peran:

    aws iam create-role \ --role-name OpenSearchUIAccessRole \ --assume-role-policy-document file://trust-policy.json
  3. Buat kebijakan izin hanya dengan es:DescribeDomain tindakan:

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] }
  4. Lampirkan kebijakan izin ke peran:

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

Langkah 2: Buat OpenSearch domain (akun target)

Buat OpenSearch domain di akun target dengan kontrol akses halus dan enkripsi diaktifkan:

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

Tunggu status domain menjadi Active sebelum melanjutkan.

Langkah 3: Buat aplikasi OpenSearch UI (akun sumber)

Buat aplikasi di akun sumber dengan sumber data lintas akun:

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":"[\"*\"]"}]'

Langkah 4: Verifikasi dan akses

Ambil detail aplikasi untuk mendapatkan URL endpoint:

aws opensearch get-application \ --region region \ --id application-id
  • Arahkan ke URL titik akhir aplikasi dari respons.

  • Masuk dengan kredensi IAM.

  • Pengguna IAM menandatangani permintaan pesawat data dengan kredensialnya sendiri.

  • Kebijakan akses domain target mengontrol data apa yang dapat diakses pengguna.

Skenario 2: Pengguna IAM Identity Center mengakses domain publik

Langkah 1: Buat peran IAM lintas akun (akun target)

Buat peran IAM di akun target yang memungkinkan akun sumber untuk menganggapnya sebagai validasi domain.

Untuk membuat peran lintas akun
  1. Buat kebijakan kepercayaan yang memungkinkan akun sumber untuk mengambil peran:

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] }
  2. Buat peran:

    aws iam create-role \ --role-name OpenSearchUIAccessRole \ --assume-role-policy-document file://trust-policy.json
  3. Buat kebijakan izin hanya dengan es:DescribeDomain tindakan:

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] }
  4. Lampirkan kebijakan izin ke peran:

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

Langkah 2: Buat OpenSearch domain (akun target)

Buat OpenSearch domain di akun target. Gunakan perintah yang sama sepertiLangkah 2: Buat OpenSearch domain (akun target), tetapi perbarui kebijakan akses untuk mengizinkan peran aplikasi Pusat Identitas IAM dari akun sumber:

{ "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/*" }] }

Tunggu status domain menjadi Active sebelum melanjutkan.

Langkah 3: Buat peran IAM untuk aplikasi IAM Identity Center (akun sumber)

Buat peran IAM di akun sumber yang digunakan OpenSearch UI untuk akses pesawat data pengguna IAM Identity Center.

Untuk membuat peran aplikasi IAM Identity Center
  1. Buat kebijakan kepercayaan:

    { "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. Membuat kebijakan izin:

    { "Version": "2012-10-17", "Statement": [{ "Sid": "OpenSearchDomain", "Effect": "Allow", "Action": ["es:ESHttp*"], "Resource": "*" }] }
  3. Buat peran dan lampirkan kebijakan:

    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

Langkah 4: Buat aplikasi OpenSearch UI dengan IAM Identity Center (akun sumber)

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":"[\"*\"]"}]'

Langkah 5: Buat dan tetapkan pengguna dan grup IAM Identity Center

Buat pengguna Pusat Identitas IAM

Jalankan perintah berikut. Ganti placeholder values dengan informasi Anda sendiri.

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
Buat grup Pusat Identitas IAM dan tambahkan pengguna

Jalankan perintah berikut:

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
Tetapkan pengguna atau grup ke aplikasi

Jalankan perintah berikut:

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
Konfigurasikan pemetaan peran backend pada domain target

Petakan grup Pusat Identitas IAM ke peran OpenSearch keamanan pada domain target:

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": [] }'

Langkah 6: Verifikasi dan akses

aws opensearch get-application \ --region region \ --id application-id
  • Arahkan ke URL titik akhir aplikasi.

  • Masuk dengan kredensi pengguna IAM Identity Center.

  • Permintaan data pengguna IAM Identity Center ditandatangani dengan peran aplikasi IAM Identity Center, bukan peran lintas akun.

  • Pemetaan peran backend pada izin akses data kontrol domain.

Skenario 3: Pengguna IAM mengakses domain VPC

Langkah 1: Buat peran IAM lintas akun (akun target)

Buat peran IAM di akun target yang memungkinkan akun sumber untuk menganggapnya sebagai validasi domain.

Untuk membuat peran lintas akun
  1. Buat kebijakan kepercayaan yang memungkinkan akun sumber untuk mengambil peran:

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] }
  2. Buat peran:

    aws iam create-role \ --role-name OpenSearchUIAccessRole \ --assume-role-policy-document file://trust-policy.json
  3. Buat kebijakan izin hanya dengan es:DescribeDomain tindakan:

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] }
  4. Lampirkan kebijakan izin ke peran:

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

Langkah 2: Siapkan VPC (akun target)

Lewati langkah ini jika VPC sudah ada di akun target.

# 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

Pelajari lebih lanjut tentang pembuatan domain VPC.

Langkah 3: Buat domain VPC (akun target)

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

Tunggu status domain menjadi Active sebelum melanjutkan.

Langkah 4: Otorisasi titik akhir VPC untuk OpenSearch prinsipal layanan UI (akun target)

penting

Ini adalah langkah penting yang unik untuk domain VPC. Layanan OpenSearch UI harus diotorisasi secara eksplisit untuk mengakses titik akhir 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

Tanggapan yang diharapkan:

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

Langkah 5: Buat aplikasi OpenSearch UI (akun sumber)

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":"[\"*\"]"}]'

Langkah 6: Verifikasi dan akses

Ambil detail aplikasi untuk mendapatkan URL endpoint:

aws opensearch get-application \ --region region \ --id application-id
  • Arahkan ke URL titik akhir aplikasi dari respons.

  • Masuk dengan kredensi IAM.

  • Pengguna IAM menandatangani permintaan pesawat data dengan kredensialnya sendiri.

  • Kebijakan akses domain target mengontrol data apa yang dapat diakses pengguna.

Skenario 4: Pengguna Pusat Identitas IAM mengakses domain VPC

Langkah 1: Buat peran IAM lintas akun (akun target)

Buat peran IAM di akun target yang memungkinkan akun sumber untuk menganggapnya sebagai validasi domain.

Untuk membuat peran lintas akun
  1. Buat kebijakan kepercayaan yang memungkinkan akun sumber untuk mengambil peran:

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] }
  2. Buat peran:

    aws iam create-role \ --role-name OpenSearchUIAccessRole \ --assume-role-policy-document file://trust-policy.json
  3. Buat kebijakan izin hanya dengan es:DescribeDomain tindakan:

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] }
  4. Lampirkan kebijakan izin ke peran:

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

Langkah 2: Siapkan VPC (akun target)

Lewati langkah ini jika VPC sudah ada di akun target.

# 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

Pelajari lebih lanjut tentang pembuatan domain VPC.

Langkah 3: Buat domain VPC (akun target)

Gunakan perintah yang sama sepertiLangkah 3: Buat domain VPC (akun target), tetapi perbarui kebijakan akses untuk mengizinkan peran aplikasi Pusat Identitas IAM dari akun sumber:

{ "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/*" }] }

Tunggu status domain menjadi Active sebelum melanjutkan.

Langkah 4: Otorisasi titik akhir VPC untuk OpenSearch prinsipal layanan UI (akun target)

penting

Ini adalah langkah penting yang unik untuk domain VPC. Layanan OpenSearch UI harus diotorisasi secara eksplisit untuk mengakses titik akhir 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

Tanggapan yang diharapkan:

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

Langkah 5: Buat peran IAM untuk aplikasi IAM Identity Center (akun sumber)

Buat peran IAM di akun sumber yang digunakan OpenSearch UI untuk akses pesawat data pengguna IAM Identity Center.

Untuk membuat peran aplikasi IAM Identity Center
  1. Buat kebijakan kepercayaan:

    { "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. Membuat kebijakan izin:

    { "Version": "2012-10-17", "Statement": [{ "Sid": "OpenSearchDomain", "Effect": "Allow", "Action": ["es:ESHttp*"], "Resource": "*" }] }
  3. Buat peran dan lampirkan kebijakan:

    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

Langkah 6: Buat aplikasi OpenSearch UI dengan IAM Identity Center (akun sumber)

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":"[\"*\"]"}]'

Langkah 7: Buat dan tetapkan pengguna dan grup IAM Identity Center

Buat pengguna Pusat Identitas IAM

Jalankan perintah berikut. Ganti placeholder values dengan informasi Anda sendiri.

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
Buat grup Pusat Identitas IAM dan tambahkan pengguna

Jalankan perintah berikut:

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
Tetapkan pengguna atau grup ke aplikasi

Jalankan perintah berikut:

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
Konfigurasikan pemetaan peran backend pada domain target

Petakan grup Pusat Identitas IAM ke peran OpenSearch keamanan pada domain target:

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": [] }'

Langkah 8: Verifikasi dan akses

aws opensearch get-application \ --region region \ --id application-id
  • Arahkan ke URL titik akhir aplikasi.

  • Masuk dengan kredensi pengguna IAM Identity Center.

  • Permintaan data pengguna IAM Identity Center ditandatangani dengan peran aplikasi IAM Identity Center, bukan peran lintas akun.

  • Pemetaan peran backend pada izin akses data kontrol domain.

Mengelola aplikasi

Perbarui aplikasi dengan sumber data lintas akun

Jalankan perintah berikut. Ganti placeholder values dengan informasi Anda sendiri.

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" }]'
penting

Operasi pembaruan menggantikan seluruh array sumber data. Sertakan semua sumber data yang ingin Anda simpan.

Daftar aplikasi

Jalankan perintah berikut:

aws opensearch list-applications \ --region region
Menghapus sebuah aplikasi

Jalankan perintah berikut:

aws opensearch delete-application \ --region region \ --id application-id
Cabut akses titik akhir VPC

Jalankan perintah berikut:

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

Referensi cepat

Tabel berikut merangkum perbedaan utama antara jenis domain dan metode otentikasi.

Domain publik dibandingkan dengan domain VPC
Aspek Domain publik Domain VPC
Otorisasi titik akhir VPC Tidak diperlukan Wajib — harus mengotorisasi application.opensearchservice.amazonaws.com
Pengaturan jaringan Tidak ada VPC, subnet, grup keamanan dengan HTTPS (443) masuk
Kebijakan akses IAM Diperlukan Diperlukan
Peran lintas akun Diperlukan untuk cross-account Diperlukan untuk cross-account
Pengguna IAM dibandingkan dengan pengguna IAM Identity Center
Aspek Pengguna IAM Pengguna Pusat Identitas IAM
Kredensial bidang data Kredensi IAM milik pengguna Peran aplikasi IAM Identity Center
Kontrol akses Kebijakan akses domain Kebijakan akses domain dan pemetaan peran backend
Pengaturan tambahan Tidak ada Peran aplikasi IAM Identity Center, user/group pembuatan, penugasan aplikasi, pemetaan peran backend
OpenSearch Konfigurasi aplikasi UI Tidak ada opsi Pusat Identitas IAM --iam-identity-center-optionsdiperlukan

Catatan penting

  • iamRoleForDataSourceArnHarus dalam akun yang sama dengandataSourceArn.

  • Hanya iamRoleForDataSourceArn diperlukan untuk sumber data lintas akun. Hilangkan untuk sumber data akun yang sama.

  • Peran lintas akun hanya membutuhkan es:DescribeDomain izin. Ini tidak pernah digunakan untuk akses pesawat data.

  • Untuk domain VPC, kebijakan IAM dan otorisasi titik akhir VPC harus dikonfigurasi.

  • Versi mesin yang didukung: OpenSearch 1.3 dan di atas.

Pemecahan masalah

Isu Resolusi
Pembuatan aplikasi gagal dengan “Tidak dapat mengakses domain” Verifikasi bahwa peran lintas akun memiliki es:DescribeDomain izin dan kebijakan kepercayaan mengizinkan akun sumber.
Asosiasi domain VPC gagal Pastikan titik akhir VPC diotorisasi. application.opensearchservice.amazonaws.com
Akses pesawat data ditolak untuk pengguna IAM Periksa apakah kebijakan akses domain target memungkinkan pengguna IAM atau kepala peran.
Akses pesawat data ditolak untuk pengguna IAM Identity Center Verifikasi bahwa pemetaan peran backend menyertakan ID grup Pusat Identitas IAM, dan kebijakan domain mengizinkan peran aplikasi Pusat Identitas IAM.
Kesalahan ketidakcocokan akun Pastikan itu iamRoleForDataSourceArn berada di akun yang sama dengan domain didataSourceArn.