Mengaitkan kebijakan akses dengan entri akses - Amazon EKS

View a markdown version of this page

Mengaitkan kebijakan akses dengan entri akses - Amazon EKS

Bantu meningkatkan halaman ini

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

Untuk berkontribusi pada panduan pengguna ini, pilih GitHub tautan Edit halaman ini di yang terletak di panel kanan setiap halaman.

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

Mengaitkan kebijakan akses dengan entri akses

Anda dapat menetapkan satu atau beberapa kebijakan akses untuk mengakses entr i jenis STANDARD. Amazon EKS secara otomatis memberikan jenis entri akses lainnya izin yang diperlukan untuk berfungsi dengan baik di cluster Anda. Kebijakan akses Amazon EKS mencakup izin Kubernetes, bukan izin IAM. Sebelum mengaitkan kebijakan akses ke entri akses, pastikan Anda sudah familiar dengan izin Kubernetes yang disertakan dalam setiap kebijakan akses. Untuk informasi selengkapnya, lihat Tinjau izin kebijakan akses. Jika tidak ada kebijakan akses yang memenuhi persyaratan Anda, jangan kaitkan kebijakan akses ke entri akses. Sebagai gantinya, tentukan satu atau beberapa nama grup untuk entri akses dan buat serta kelola objek kontrol akses berbasis peran Kubernetes. Untuk informasi selengkapnya, lihat Buat entri akses.

  • Entri akses yang ada. Untuk membuatnya, lihat Buat entri akses.

  • Peran AWS Identitas dan Manajemen Akses atau pengguna dengan izin berikut:ListAccessEntries,DescribeAccessEntry,UpdateAccessEntry,ListAccessPolicies,AssociateAccessPolicy, danDisassociateAccessPolicy. Untuk informasi selengkapnya, lihat Tind akan yang ditentukan oleh Layanan Kubernetes Amazon Elastic di Referensi Otorisasi Layanan.

Sebelum mengaitkan kebijakan akses dengan entri akses, pertimbangkan persyaratan berikut:

  • Anda dapat mengaitkan beberapa kebijakan akses ke setiap entri akses, tetapi Anda hanya dapat mengaitkan setiap kebijakan ke entri akses satu kali. Jika Anda mengaitkan beberapa kebijakan akses, prinsip IAM entri akses memiliki semua izin yang disertakan dalam semua kebijakan akses terkait.

  • Anda dapat mencakup kebijakan akses ke semua sumber daya pada cluster atau dengan menentukan nama satu atau beberapa ruang nama Kubernetes. Anda dapat menggunakan karakter wildcard untuk nama namespace. Misalnya, jika Anda ingin menjangkau kebijakan akses ke semua ruang nama yang dimulai dengandev-, Anda dapat menentukan dev-* sebagai nama namespace. Pastikan bahwa ruang nama ada di cluster Anda dan ejaan Anda cocok dengan nama namespace aktual di cluster. Amazon EKS tidak mengonfirmasi ejaan atau keberadaan ruang nama di cluster Anda.

  • Anda dapat mengubah cakupan akses untuk kebijakan akses setelah Anda mengaitkannya ke entri akses. Jika Anda telah menetapkan cakupan kebijakan akses ke ruang nama Kubernetes, Anda dapat menambahkan dan menghapus ruang nama untuk asosiasi, jika diperlukan.

  • Jika Anda mengaitkan kebijakan akses ke entri akses yang juga memiliki nama grup yang ditentukan, maka prinsipal IAM memiliki semua izin di semua kebijakan akses terkait. Ini juga memiliki semua izin di Kubernetes Role atau ClusterRole objek apa pun yang ditentukan dalam Kubernetes Role dan RoleBinding objek yang menentukan nama grup.

  • Jika menjalankan kubectl auth can-i --list perintah, Anda tidak akan melihat izin Kubernetes yang ditetapkan oleh kebijakan akses yang terkait dengan entri akses untuk prinsipal IAM yang Anda gunakan saat menjalankan perintah. Perintah hanya menampilkan izin Kubernetes jika Anda telah memberikannya di Kubernetes Role atau ClusterRole objek yang telah Anda ikat ke nama grup atau nama pengguna yang Anda tentukan untuk entri akses.

  • Jika Anda menyamar sebagai pengguna atau grup Kubernetes saat berinteraksi dengan objek Kubernetes di cluster Anda, seperti menggunakan kubectl perintah dengan --as username atau--as-group group-name , Anda memaksa penggunaan otorisasi Kubernetes RBAC. Akibatnya, prinsipal IAM tidak memiliki izin yang ditetapkan oleh kebijakan akses apa pun yang terkait dengan entri akses. Satu-satunya izin Kubernetes yang dimiliki pengguna atau grup yang ditiru oleh prinsipal IAM adalah izin Kubernetes yang telah Anda berikan kepada mereka di Kubernetes Role atau ClusterRole objek yang telah Anda ikat ke nama grup atau nama pengguna. Agar prinsipal IAM Anda memiliki izin dalam kebijakan akses terkait, jangan menyamar sebagai pengguna atau grup Kubernetes. Prinsip IAM juga akan tetap memiliki izin apa pun yang telah Anda berikan kepada mereka di Kubernetes Role atau ClusterRole objek yang telah Anda ikat ke nama grup atau nama pengguna yang Anda tentukan untuk entri akses. Untuk informasi selengkapnya, lihat Pen iruan pengguna dalam dokumentasi Kubernetes.

Anda dapat mengaitkan kebijakan akses ke entri akses menggunakan Konsol Manajemen AWS atau AWS CLI.

Konsol Manajemen AWS

  1. Buka konsol Amazon EKS.

  2. Pilih nama cluster yang memiliki entri akses yang ingin Anda kaitkan dengan kebijakan akses.

  3. Pilih tab Akses.

  4. Jika jenis entri akses adalah Standar, Anda dapat mengaitkan atau memisahkan kebijakan akses Amazon EKS. Jika jenis entri akses Anda adalah apa pun selain Standar, maka opsi ini tidak tersedia.

  5. Pilih Kebijakan akses Asosiasi.

  6. Untuk Nama kebijakan, pilih kebijakan dengan izin yang Anda inginkan untuk dimiliki oleh prinsipal IAM. Untuk melihat izin yang disertakan dalam setiap kebijakan, lihatTinjau izin kebijakan akses.

  7. Untuk cakupan akses, pilih cakupan akses. Jika Anda memilih Cluster, izin dalam kebijakan akses diberikan kepada prinsipal IAM untuk sumber daya di semua ruang nama Kubernetes. Jika Anda memilih Kubernetes namespace, Anda kemudian dapat memilih Tambahkan namespace baru. Di bidang Namespace yang muncul, Anda dapat memasukkan nama namespace Kubernetes pada cluster Anda. Jika Anda ingin prinsipal IAM memiliki izin di beberapa ruang nama, maka Anda dapat memasukkan beberapa ruang nama.

  8. Pilih Tambah kebijakan akses.

AWS CLI

  1. Versi 2.12.3 atau yang lebih baru atau versi 1.27.160 atau yang lebih baru dari AWS Command Line Interface (AWS CLI) diinstal dan dikonfigurasi pada perangkat Anda atau AWS CloudShell. Untuk memeriksa versi Anda saat ini, gunakanaws --version | cut -d / -f2 | cut -d ' ' -f1. Manajer paket sepertiyum,apt-get, atau Homebrew untuk macOS sering memiliki beberapa versi di belakang versi terbaru AWS CLI. Untuk menginstal versi terbaru, lihat Meng instal dan konfigurasi cepat dengan aws configure di Panduan Pengguna Antar AWS muka Baris Perintah. Versi AWS CLI yang diinstal AWS CloudShell mungkin juga beberapa versi di belakang versi terbaru. Untuk memperbaruinya, lihat AWS Meng instal CLI ke direktori home Anda di Panduan AWS CloudShell Pengguna.

  2. Lihat kebijakan akses yang tersedia.

    aws eks list-access-policies --output table

    Contoh output adalah sebagai berikut.

    --------------------------------------------------------------------------------------------------------- | ListAccessPolicies | +-------------------------------------------------------------------------------------------------------+ || accessPolicies || |+---------------------------------------------------------------------+-------------------------------+| || arn | name || |+---------------------------------------------------------------------+-------------------------------+| || {arn-aws}eks::aws:cluster-access-policy/AmazonEKSAdminPolicy | AmazonEKSAdminPolicy || || {arn-aws}eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy | AmazonEKSClusterAdminPolicy || || {arn-aws}eks::aws:cluster-access-policy/AmazonEKSEditPolicy | AmazonEKSEditPolicy || || {arn-aws}eks::aws:cluster-access-policy/AmazonEKSViewPolicy | AmazonEKSViewPolicy || |+---------------------------------------------------------------------+-------------------------------+|

    Untuk melihat izin yang disertakan dalam setiap kebijakan, lihatTinjau izin kebijakan akses.

  3. Lihat entri akses Anda yang ada. Ganti my-cluster dengan nama klaster Anda.

    aws eks list-access-entries --cluster-name my-cluster

    Contoh output adalah sebagai berikut.

    { "accessEntries": [ "arn:aws: iam::111122223333:role/my-role", "arn:aws: iam::111122223333:user/my-user" ] }
  4. Mengaitkan kebijakan akses ke entri akses. Contoh berikut mengaitkan kebijakan AmazonEKSViewPolicy akses ke entri akses. Setiap kali peran my-role IAM mencoba mengakses objek Kubernetes di cluster, Amazon EKS akan mengotorisasi peran tersebut untuk menggunakan izin dalam kebijakan untuk mengakses objek Kubernetes di ruang nama dan Kubernetes saja. my-namespace1 my-namespace2 Ganti my-cluster dengan nama cluster Anda, 111122223333 dengan ID AWS akun Anda, dan my-role dengan nama peran IAM yang Anda inginkan agar Amazon EKS mengotorisasi akses ke objek cluster Kubernetes.

    aws eks associate-access-policy --cluster-name my-cluster --principal-arn arn:aws: iam::111122223333:role/my-role \ --access-scope type=namespace,namespaces=my-namespace1,my-namespace2 --policy-arn arn:aws: eks::aws:cluster-access-policy/AmazonEKSViewPolicy

    Jika Anda ingin prinsipal IAM memiliki izin di seluruh cluster, ganti dengan. type=namespace,namespaces=my-namespace1,my-namespace2 type=cluster Jika Anda ingin mengaitkan beberapa kebijakan akses ke entri akses, jalankan perintah beberapa kali, masing-masing dengan kebijakan akses unik. Setiap kebijakan akses terkait memiliki ruang lingkupnya sendiri.

    catatan

    Jika nanti Anda ingin mengubah cakupan kebijakan akses terkait, jalankan perintah sebelumnya lagi dengan cakupan baru. Misalnya, jika Anda ingin menghapusmy-namespace2, Anda akan menjalankan perintah lagi menggunakan type=namespace,namespaces=my-namespace1 saja. Jika Anda ingin mengubah cakupan dari namespace kecluster, Anda akan menjalankan perintah lagi menggunakantype=cluster, menghapustype=namespace,namespaces=my-namespace1,my-namespace2 .

  5. Tentukan kebijakan akses mana yang terkait dengan entri akses.

    aws eks list-associated-access-policies --cluster-name my-cluster --principal-arn arn:aws: iam::111122223333:role/my-role

    Contoh output adalah sebagai berikut.

    { "clusterName": "my-cluster", "principalArn": "arn:aws: iam::111122223333:role/my-role", "associatedAccessPolicies": [ { "policyArn": "arn:aws: eks::aws:cluster-access-policy/AmazonEKSViewPolicy", "accessScope": { "type": "cluster", "namespaces": [] }, "associatedAt": "2023-04-17T15:25:21.675000-04:00", "modifiedAt": "2023-04-17T15:25:21.675000-04:00" }, { "policyArn": "arn:aws: eks::aws:cluster-access-policy/AmazonEKSAdminPolicy", "accessScope": { "type": "namespace", "namespaces": [ "my-namespace1", "my-namespace2" ] }, "associatedAt": "2023-04-17T15:02:06.511000-04:00", "modifiedAt": "2023-04-17T15:02:06.511000-04:00" } ] }

    Dalam contoh sebelumnya, prinsipal IAM untuk entri akses ini memiliki izin tampilan di semua ruang nama di cluster, dan izin administrator untuk dua ruang nama Kubernetes.

  6. Putuskan hubungan kebijakan akses dari entri akses. Dalam contoh ini, AmazonEKSAdminPolicy kebijakan dipisahkan dari entri akses. Prinsip IAM mempertahankan izin dalam kebijakan AmazonEKSViewPolicy akses untuk objek di ruang nama my-namespace1 danmy-namespace2, karena kebijakan akses tersebut tidak dipisahkan dari entri akses.

    aws eks disassociate-access-policy --cluster-name my-cluster --principal-arn arn:aws: iam::111122223333:role/my-role \ --policy-arn arn:aws: eks::aws:cluster-access-policy/AmazonEKSAdminPolicy

Untuk mencantumkan kebijakan akses yang tersedia, lihatTinjau izin kebijakan akses.