Otentikasi ke akun lain dengan IRSA - Amazon EKS

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

Otentikasi ke akun lain dengan IRSA

Anda dapat mengonfigurasi IAM izin lintas akun baik dengan membuat penyedia identitas dari klaster akun lain atau dengan menggunakan operasi berantaiAssumeRole. Dalam contoh berikut, Akun A memiliki EKS klaster Amazon yang mendukung IAM peran untuk akun layanan. Pods yang berjalan di cluster itu harus mengambil IAM izin dari Akun B.

contoh Buat penyedia identitas dari klaster akun lain

Dalam contoh ini, Akun A menyediakan Account B dengan penerbit OpenID Connect (OIDC) URL dari klaster mereka. Akun B mengikuti petunjuk di Buat sebuah IAM OIDC penyedia untuk klaster Anda Buat IAM OIDC penyedia untuk klaster Anda dan Menetapkan IAM peran untuk Kubernetes akun layanan menggunakan OIDC penerbit URL dari klaster Akun A. Kemudian, administrator klaster membuat anotasi akun layanan di klaster Akun A untuk menggunakan peran dari Akun B (444455556666).

apiVersion: v1 kind: ServiceAccount metadata: annotations: eks.amazonaws.com/role-arn: arn:aws: iam::444455556666:role/account-b-role
contoh Gunakan operasi berantai AssumeRole

Dalam contoh ini, Akun B membuat IAM kebijakan dengan izin untuk diberikan Pods di klaster Akun A. Akun B (444455556666) melampirkan kebijakan tersebut ke IAM peran dengan hubungan kepercayaan yang memungkinkan AssumeRole izin ke Akun A (111122223333).

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

Akun A membuat peran dengan kebijakan kepercayaan yang mendapatkan kredensi dari penyedia identitas yang dibuat dengan alamat OIDC penerbit klaster.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws: iam::111122223333:oidc-provider/oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE" }, "Action": "sts:AssumeRoleWithWebIdentity" } ] }

Akun A melampirkan kebijakan ke peran tersebut untuk mengambil peran yang dibuat oleh Akun B dengan izin berikut.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws: iam::444455556666:role/account-b-role" } ] }

Kode aplikasi untuk Pods untuk mengambil peran Akun B menggunakan dua profil: account_b_role danaccount_a_role. Profil account_b_role menggunakan profil account_a_role sebagai sumbernya. Untuk AWS CLI, ~/.aws/config file ini mirip dengan yang berikut ini.

[profile account_b_role] source_profile = account_a_role role_arn=arn:aws: iam::444455556666:role/account-b-role [profile account_a_role] web_identity_token_file = /var/run/secrets/eks.amazonaws.com/serviceaccount/token role_arn=arn:aws: iam::111122223333:role/account-a-role

Untuk menentukan profil berantai untuk yang lain AWS SDKs, lihat dokumentasi untuk SDK yang Anda gunakan. Untuk informasi selengkapnya, lihat Alat untuk Dibangun AWS.