View a markdown version of this page

Merantau peran IAM di Amazon Neptunus - Amazon Neptune

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

Merantau peran IAM di Amazon Neptunus

penting

Fitur lintas akun beban massal baru yang diperkenalkan dalam rilis mesin 1.2.1.0.R3 yang memanfaatkan rantai peran IAM dalam beberapa kasus dapat menyebabkan Anda mengamati penurunan kinerja beban massal. Akibatnya, peningkatan rilis mesin yang mendukung fitur ini telah ditangguhkan sementara sampai masalah ini teratasi.

Saat Anda melampirkan peran ke cluster Anda, cluster Anda dapat mengambil peran itu untuk mendapatkan akses ke data yang disimpan di Amazon S3. Dimulai dengan rilis mesin 1.2.1.0.R3, jika peran itu tidak memiliki akses ke semua sumber daya yang Anda butuhkan, Anda dapat merangkai satu atau lebih peran tambahan yang dapat diambil oleh cluster Anda untuk mendapatkan akses ke sumber daya lain. Setiap peran dalam rantai mengambil peran berikutnya dalam rantai, sampai cluster Anda mengambil peran di akhir rantai.

Untuk rantai peran, Anda membangun hubungan kepercayaan di antara mereka. Misalnya, untuk berrantai RoleBRoleA, RoleA harus memiliki kebijakan izin yang memungkinkannya untuk mengasumsikanRoleB, dan RoleB harus memiliki kebijakan kepercayaan yang memungkinkannya untuk meneruskan kembali izinnyaRoleA. Untuk informasi selengkapnya, lihat Menggunakan peran IAM.

Peran pertama dalam rantai harus dilampirkan ke cluster yang memuat data.

Peran pertama, dan setiap peran berikutnya yang mengambil peran berikut dalam rantai, harus memiliki:

  • Kebijakan yang mencakup pernyataan tertentu dengan Allow efek pada sts:AssumeRole tindakan.

  • Nama Sumber Daya Amazon (ARN) dari peran berikutnya dalam Resource elemen.

catatan

Bucket Amazon S3 target harus berada di Wil AWS ayah yang sama dengan cluster.

Cross-account akses menggunakan peran beraneka

Anda dapat memberikan akses lintas akun dengan merangkai peran atau peran yang dimiliki akun lain. Ketika cluster Anda sementara mengambil peran milik akun lain, ia dapat memperoleh akses ke sumber daya di sana.

Sebagai contoh, misalkan Akun A ingin mengakses data dalam bucket Amazon S3 milik Akun B:

  • Akun A membuat peran AWS layanan untuk Neptunus bernama RoleA dan melampirkannya ke cluster.

  • Akun B membuat peran bernama RoleB yang diizinkan untuk mengakses data dalam bucket Akun B.

  • Akun A melampirkan kebijakan izin RoleA yang memungkinkannya untuk mengasumsikanRoleB.

  • Akun B melampirkan kebijakan kepercayaan RoleB yang memungkinkannya meneruskan kembali izinnyaRoleA.

  • Untuk mengakses data dalam bucket Akun B, Akun A menjalankan perintah loader menggunakan iamRoleArn parameter yang berrantai RoleA danRoleB. Untuk durasi operasi loader, RoleA maka sementara mengasumsikan RoleB untuk mengakses bucket Amazon S3 di Akun B.

Diagram yang menggambarkan akses lintas akun menggunakan peran beraneka

Misalnya, RoleA akan memiliki kebijakan kepercayaan yang membangun hubungan kepercayaan dengan Neptunus:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

RoleAjuga akan memiliki kebijakan izin yang memungkinkannya untuk mengasumsikanRoleB, yang dimiliki oleh Akun B:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Stmt1487639602000", "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": "arn:aws:iam::111122223333:role/RoleB" } ] }

Sebaliknya, RoleB akan memiliki kebijakan kepercayaan untuk membangun hubungan kepercayaan denganRoleA:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleA" } } ] }

RoleBjuga memerlukan izin untuk mengakses data di bucket Amazon S3 yang terletak di Akun B.

Membuat AWS Security Token Service (STS) Titik akhir VPC

Pemuat Neptune memerlukan titik akhir VPC AWS STS saat Anda mengrantai peran IAM untuk mengakses AWS STS API secara pribadi melalui alamat IP pribadi. Anda dapat terhubung langsung dari Amazon VPC ke AWS STS melalui Titik Akhir VPC dengan cara yang aman dan dapat diskalakan. Saat Anda menggunakan antarmuka titik akhir VPC, ini memberikan postur keamanan yang lebih baik karena Anda tidak perlu membuka firewall lalu lintas keluar. Ini juga memberikan manfaat lain menggunakan titik akhir Amazon VPC.

Saat menggunakan VPC Endpoint, lalu lintas ke AWS STS tidak ditransmisikan melalui internet dan tidak pernah meninggalkan jaringan Amazon. VPC Anda terhubung dengan aman AWS STS tanpa risiko ketersediaan atau batasan bandwidth pada lalu lintas jaringan Anda. Untuk informasi selengkapnya, lihat Menggunakan titik AWS STS akhir antarmuka VPC.

Untuk mengatur akses untuk AWS Security Token Service (STS)
  1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon VPC di https://console.aws.amazon.com/vpc/.

  2. Di panel navigasi, pilih Titik Akhir.

  3. Pilih Buat Titik Akhir.

  4. Pilih Nama Layanan: com.amazonaws.region.sts untuk titik akhir tipe Antarmuka.

  5. Pilih VPC yang berisi instans Neptune DB dan instans EC2 Anda.

  6. Pilih kotak centang di sebelah subnet tempat instance EC2 Anda hadir. Anda tidak dapat memilih beberapa subnet dari Zona Ketersediaan yang sama.

  7. Untuk jenis alamat IP, pilih dari opsi berikut:

    • IPv4 — Tetapkan alamat IPv4 ke antarmuka jaringan endpoint Anda. Opsi ini didukung hanya jika semua subnet yang dipilih memiliki rentang alamat IPv4.

    • IPv6 — Tetapkan alamat IPv6 ke antarmuka jaringan titik akhir Anda. Opsi ini didukung hanya jika semua subnet yang dipilih adalah IPv6-only subnet.

    • Dualstack — Tetapkan alamat IPv4 dan IPv6 ke antarmuka jaringan titik akhir Anda. Opsi ini didukung hanya jika semua subnet yang dipilih memiliki rentang alamat IPv4 dan IPv6.

  8. Untuk grup keamanan, pilih grup keamanan yang akan diasosiasikan dengan antarmuka jaringan titik akhir untuk titik akhir VPC. Anda harus memilih semua grup keamanan yang dilampirkan ke instans Neptune DB dan instans EC2 Anda.

  9. Untuk Kebijakan, pilih Ak ses penuh untuk mengizinkan semua operasi oleh semua prinsipal pada semua sumber daya melalui titik akhir VPC. Jika tidak, pilih Kustom untuk melampirkan kebijakan titik akhir VPC yang mengontrol izin yang dimiliki kepala sekolah untuk melakukan tindakan pada sumber daya melalui titik akhir VPC. Opsi ini hanya tersedia jika layanan mendukung kebijakan titik akhir VPC. Untuk informasi selengkapnya, lihat Kebijakan Endpoint.

  10. (Opsional) Untuk menambahkan tag, pilih Tambahkan tag baru dan masukkan kunci tag dan nilai tag yang Anda inginkan.

  11. Pilih Buat titik akhir.

Untuk informasi tentang membuat titik akhir, lihat Titik Akhir VPC di Panduan Pengguna Amazon VPC. Harap dicatat bahwa Amazon STS VPC Endpoint adalah prasyarat yang diperlukan untuk rantai peran IAM.

Sekarang setelah Anda memberikan akses ke AWS STS titik akhir, Anda dapat bersiap untuk memuat data. Untuk informasi tentang format yang didukung, lihat Mem uat Format Data.

Rantai-rantai peran dalam perintah loader

Anda dapat menentukan rantai peran saat menjalankan perintah loader dengan menyertakan daftar ARN peran yang dipisahkan koma dalam parameter. iamRoleArn

Meskipun sebagian besar Anda hanya perlu memiliki dua peran dalam rantai, tentu saja mungkin untuk mengikat tiga atau lebih bersama-sama. Misalnya, perintah loader ini merangkai tiga peran:

AWS CLI
aws neptunedata start-loader-job \ --endpoint-url https://your-neptune-endpoint:port \ --source "s3://(the target bucket name)/(the target date file name)" \ --format "csv" \ --iam-role-arn "arn:aws:iam::(Account A ID):role/(RoleA),arn:aws:iam::(Account B ID):role/(RoleB),arn:aws:iam::(Account C ID):role/(RoleC)" \ --s3-bucket-region "us-east-1"

Untuk informasi selengkapnya, lihat start-loader-job di Referensi Per AWS CLI intah.

SDK
import boto3 from botocore.config import Config client = boto3.client( 'neptunedata', endpoint_url='https://your-neptune-endpoint:port', config=Config(read_timeout=None, retries={'total_max_attempts': 1}) ) response = client.start_loader_job( source='s3://(the target bucket name)/(the target date file name)', format='csv', iamRoleArn='arn:aws:iam::(Account A ID):role/(RoleA),arn:aws:iam::(Account B ID):role/(RoleB),arn:aws:iam::(Account C ID):role/(RoleC)', s3BucketRegion='us-east-1' ) print(response)
awscurl
awscurl https://your-neptune-endpoint:port/loader \ --region us-east-1 \ --service neptune-db \ -X POST \ -H 'Content-Type: application/json' \ -d '{ "source" : "s3://(the target bucket name)/(the target date file name)", "iamRoleArn" : "arn:aws:iam::(Account A ID):role/(RoleA),arn:aws:iam::(Account B ID):role/(RoleB),arn:aws:iam::(Account C ID):role/(RoleC)", "format" : "csv", "region" : "us-east-1" }'
catatan

Contoh ini mengasumsikan bahwa AWS kredenSIAL Anda dikonfigurasi di lingkungan Anda. Ganti us-east-1 dengan Wilayah cluster Neptunus Anda.

curl
curl -X POST https://your-neptune-endpoint:port/loader \ -H 'Content-Type: application/json' \ -d '{ "source" : "s3://(the target bucket name)/(the target date file name)", "iamRoleArn" : "arn:aws:iam::(Account A ID):role/(RoleA),arn:aws:iam::(Account B ID):role/(RoleB),arn:aws:iam::(Account C ID):role/(RoleC)", "format" : "csv", "region" : "us-east-1" }'