Merantai peran IAM di Amazon Redshift - Amazon Redshift

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

Merantai peran IAM di Amazon Redshift

Saat Anda melampirkan peran ke klaster, klaster Anda dapat mengambil peran tersebut untuk mengakses Amazon S3, Amazon Athena AWS Glue, AWS Lambda dan atas nama Anda. Jika peran yang dilampirkan ke klaster Anda tidak memiliki akses ke sumber daya yang diperlukan, Anda dapat merantai peran lain, mungkin milik akun lain. Cluster Anda kemudian sementara mengasumsikan peran berantai untuk mengakses data. Anda juga dapat memberikan akses lintas akun dengan merantai peran. Setiap peran dalam rantai mengasumsikan peran berikutnya dalam rantai, sampai cluster mengambil peran di akhir rantai. Jumlah maksimum peran IAM yang dapat Anda kaitkan tunduk pada kuota. Untuk informasi selengkapnya, lihat kuota “Peran IAM klaster untuk Amazon Redshift untuk mengakses layanan AWS lain” di. Kuota untuk objek Amazon Redshift

Misalnya, Perusahaan A ingin mengakses data dalam bucket Amazon S3 milik Perusahaan B. Perusahaan A menciptakan peran AWS layanan untuk Amazon Redshift RoleA bernama dan menempelkannya ke klaster mereka. Perusahaan B membuat peran bernama RoleB yang diizinkan untuk mengakses data di bucket Perusahaan B. Untuk mengakses data dalam bucket B Perusahaan, Perusahaan A menjalankan perintah COPY menggunakan iam_role parameter yang berantai RoleA danRoleB. Selama operasi COPY, untuk RoleA sementara mengasumsikan RoleB untuk mengakses bucket Amazon S3.

Untuk peran rantai, Anda membangun hubungan kepercayaan antara peran. Peran yang mengasumsikan peran lain (misalnya,RoleA) harus memiliki kebijakan izin yang memungkinkannya mengambil peran berantai berikutnya (misalnya,). RoleB Pada gilirannya, peran yang meneruskan izin (RoleB) harus memiliki kebijakan kepercayaan yang memungkinkannya meneruskan izinnya ke peran berantai sebelumnya (). RoleA Untuk informasi selengkapnya, lihat Menggunakan peran IAM di Panduan Pengguna IAM.

Peran pertama dalam rantai harus menjadi peran yang melekat pada cluster. Peran pertama, dan setiap peran berikutnya yang mengambil peran berikutnya dalam rantai, harus memiliki kebijakan yang mencakup pernyataan tertentu. Pernyataan ini memiliki Allow efek pada sts:AssumeRole tindakan dan Nama Sumber Daya Amazon (ARN) dari peran berikutnya dalam suatu Resource elemen. Dalam contoh kami, RoleA memiliki kebijakan izin berikut yang memungkinkannya untuk berasumsiRoleB, dimiliki oleh AWS akun210987654321.

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

Peran yang beralih ke peran lain harus membangun hubungan kepercayaan dengan peran yang mengambil peran atau dengan AWS akun yang memiliki peran tersebut. Dalam contoh kami, RoleB memiliki kebijakan kepercayaan berikut untuk membangun hubungan kepercayaan denganRoleA.

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

Kebijakan kepercayaan berikut menetapkan hubungan kepercayaan dengan pemilikRoleA, AWS akun123456789012.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": "arn:aws:iam::123456789012:root" } } ] }
catatan

Untuk membatasi otorisasi rantai peran untuk pengguna tertentu, tentukan kondisi. Untuk informasi selengkapnya, lihat Membatasi akses ke peran IAM.

Saat menjalankan perintah UNLOAD, COPY, CREATE EXTERNAL FUNCTION, atau CREATE EXTERNAL SCHEMA, Anda merantai peran dengan menyertakan daftar peran yang dipisahkan koma dalam ARNs parameter. iam_role Berikut ini menunjukkan sintaks untuk peran rantai dalam parameter. iam_role

unload ('select * from venue limit 10') to 's3://acmedata/redshift/venue_pipe_' IAM_ROLE 'arn:aws:iam::<aws-account-id-1>:role/<role-name-1>[,arn:aws:iam::<aws-account-id-2>:role/<role-name-2>][,...]';
catatan

Seluruh rantai peran tertutup dalam tanda kutip tunggal dan tidak boleh berisi spasi.

Dalam contoh berikut, RoleA dilampirkan ke cluster milik AWS akun123456789012. RoleB, yang termasuk dalam akun210987654321, memiliki izin untuk mengakses bucket bernamas3://companyb/redshift/. Contoh rantai berikut RoleA dan RoleB untuk MEMBONGKAR data ke bucket s3://companyb/redshift/.

unload ('select * from venue limit 10') to 's3://companyb/redshift/venue_pipe_' iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';

Contoh berikut menggunakan perintah COPY untuk memuat data yang diturunkan dalam contoh sebelumnya.

copy venue from 's3://companyb/redshift/venue_pipe_' iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';

Dalam contoh berikut, CREATE EXTERNAL SCHEMA menggunakan peran berantai untuk mengambil peran. RoleB

create external schema spectrumexample from data catalog database 'exampledb' region 'us-west-2' iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';

Dalam contoh berikut, CREATE EXTERNAL FUNCTION menggunakan peran berantai untuk mengambil peranRoleB.

create external function lambda_example(varchar) returns varchar volatile lambda 'exampleLambdaFunction' iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';