Mengaitkan kebijakan akses dengan entri akses - Amazon EKS

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 jenis entri. STANDARD Amazon EKS secara otomatis memberikan jenis entri akses lainnya izin yang diperlukan agar berfungsi dengan baik di klaster Anda. Kebijakan EKS akses Amazon termasuk Kubernetes izin, bukan IAM izin. Sebelum mengaitkan kebijakan akses ke entri akses, pastikan Anda sudah familiar dengan Kubernetes izin yang disertakan dalam setiap kebijakan akses. Untuk informasi selengkapnya, lihat Izin kebijakan akses. Jika tidak ada kebijakan akses yang memenuhi persyaratan Anda, maka jangan kaitkan kebijakan akses ke entri akses. Sebagai gantinya, tentukan satu atau beberapa nama grup untuk entri akses dan buat dan kelola Kubernetes objek kontrol akses berbasis peran. Untuk informasi selengkapnya, lihat Buat entri akses.

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, IAM prinsipal entri akses memiliki semua izin yang disertakan dalam semua kebijakan akses terkait.

  • Anda dapat membuat cakupan kebijakan akses ke semua sumber daya di klaster atau dengan menentukan nama satu atau lebih Kubernetes ruang nama. Anda dapat menggunakan karakter wildcard untuk nama namespace. Misalnya, jika Anda ingin membuat cakupan kebijakan akses ke semua ruang nama yang dimulaidev-, Anda dapat menentukan dev-* sebagai nama namespace. Pastikan bahwa namespace ada di cluster Anda dan ejaan Anda cocok dengan nama namespace yang sebenarnya di cluster. Amazon EKS tidak mengonfirmasi ejaan atau keberadaan ruang nama di klaster Anda.

  • Anda dapat mengubah cakupan akses untuk kebijakan akses setelah Anda mengaitkannya ke entri akses. Jika Anda telah mencakup kebijakan akses ke Kubernetes namespaces, Anda dapat menambah dan menghapus namespace untuk asosiasi, seperlunya.

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

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

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

Anda dapat mengaitkan kebijakan akses ke entri akses menggunakan AWS Management Console atau AWS CLI.

AWS Management Console

  1. Buka EKSkonsol Amazon.

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

  3. Pilih tab Access.

  4. Jika jenis entri akses adalah Standar, Anda dapat mengaitkan atau memisahkan kebijakan EKS akses Amazon. 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 ingin dimiliki IAM prinsipal. Untuk melihat izin yang disertakan dalam setiap kebijakan, lihatIzin kebijakan akses.

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

  8. Pilih Tambahkan 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. Package manager sepertiyum,apt-get, atau Homebrew untuk macOS sering beberapa versi di belakang versi terbaru dari AWS CLI. Untuk menginstal versi terbaru, lihat Menginstal dan Konfigurasi cepat dengan aws configure di Panduan Pengguna Antarmuka Baris AWS Perintah. AWS CLIVersi yang diinstal AWS CloudShell mungkin juga beberapa versi di belakang versi terbaru. Untuk memperbaruinya, lihat Menginstal AWS 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, lihatIzin kebijakan akses.

  3. Lihat entri akses yang ada. Ganti my-cluster dengan nama cluster 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. Kaitkan kebijakan akses ke entri akses. Contoh berikut mengaitkan kebijakan AmazonEKSViewPolicy akses ke entri akses. Setiap kali my-role IAMupaya peran untuk mengakses Kubernetes objek di cluster, Amazon EKS akan mengotorisasi peran untuk menggunakan izin dalam kebijakan untuk mengakses Kubernetes benda-benda di my-namespace1 and my-namespace2 Kubernetes ruang nama saja. Ganti my-cluster dengan nama cluster Anda, 111122223333 dengan ID AWS akun Anda, dan my-role dengan nama IAM peran yang Anda inginkan Amazon EKS untuk mengotorisasi akses Kubernetes objek cluster untuk.

    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 kepala IAM sekolah 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 menghapus my-namespace2, Anda akan menjalankan perintah lagi type=namespace,namespaces=my-namespace1 hanya dengan menggunakan. 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", "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" } ] }

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

  6. Memutuskan kebijakan akses dari entri akses. Dalam contoh ini, AmazonEKSAdminPolicy kebijakan dipisahkan dari entri akses. IAMPrinsipal mempertahankan izin dalam kebijakan AmazonEKSViewPolicy akses untuk objek di my-namespace1 and my-namespace2 namespaces namun, 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

Izin kebijakan akses

Kebijakan akses termasuk rules yang berisi Kubernetes verbs(izin) danresources. Kebijakan akses tidak menyertakan IAM izin atau sumber daya. Mirip dengan Kubernetes Roledan ClusterRole objek, kebijakan akses hanya mencakup allowrules. Anda tidak dapat mengubah konten kebijakan akses. Anda tidak dapat membuat kebijakan akses sendiri. Jika izin dalam kebijakan akses tidak memenuhi kebutuhan Anda, buat Kubernetes RBACobjek dan tentukan nama grup untuk entri akses Anda. Untuk informasi selengkapnya, lihat Buat entri akses. Izin yang terkandung dalam kebijakan akses mirip dengan izin di Kubernetes peran cluster yang menghadap pengguna. Untuk informasi selengkapnya, lihat Peran yang dihadapi pengguna di Kubernetes dokumentasi.

Pilih kebijakan akses apa pun untuk melihat isinya. Setiap baris dari setiap tabel di setiap kebijakan akses adalah aturan terpisah.

Kebijakan akses ini mencakup izin yang memberikan sebagian besar izin IAM utama ke sumber daya. Ketika dikaitkan dengan entri akses, ruang lingkup aksesnya biasanya satu atau lebih Kubernetes ruang nama. Jika Anda ingin IAM prinsipal memiliki akses administrator ke semua sumber daya di klaster Anda, kaitkan kebijakan mazonEKSCluster AdminPolicy akses A mazonEKSCluster AdminPolicy A ke entri akses Anda.

ARN arn:aws: eks::aws:cluster-access-policy/AmazonEKSAdminPolicy

Grup Kubernetes API Sumber daya Kubernetes Kata kerja Kubernetes (izin)

apps

daemonsets, deployments, deployments/rollback, deployments/scale, replicasets, replicasets/scale, statefulsets, statefulsets/scale

create, delete, deletecollection, patch, update

apps

controllerrevisions, daemonsets, daemonsets/status, deployments, deployments/scale, deployments/status, replicasets, replicasets/scale, replicasets/status, statefulsets, statefulsets/scale, statefulsets/status

get, list, watch

authorization.k8s.io

localsubjectaccessreviews

create

autoscaling

horizontalpodautoscalers

create, delete, deletecollection, patch, update

autoscaling

horizontalpodautoscalers, horizontalpodautoscalers/status

get, list, watch

batch

cronjobs, jobs

create, delete, deletecollection, patch, update

batch

cronjobs, cronjobs/status, jobs, jobs/status

get, list, watch

discovery.k8s.io

endpointslices

get, list, watch

extensions

daemonsets, deployments, deployments/rollback, deployments/scale, ingresses, networkpolicies, replicasets, replicasets/scale, replicationcontrollers/scale

create, delete, deletecollection, patch, update

extensions

daemonsets, daemonsets/status, deployments, deployments/scale, deployments/status, ingresses, ingresses/status, networkpolicies, replicasets, replicasets/scale, replicasets/status, replicationcontrollers/scale

get, list, watch

networking.k8s.io

ingresses, ingresses/status, networkpolicies

get, list, watch

networking.k8s.io

ingresses, networkpolicies

create, delete, deletecollection, patch, update

policy

poddisruptionbudgets

create, delete, deletecollection, patch, update

policy

poddisruptionbudgets, poddisruptionbudgets/status

get, list, watch

rbac.authorization.k8s.io

rolebindings, roles

create, delete, deletecollection, get, list, patch, update, watch

configmaps, endpoints, persistentvolumeclaims, persistentvolumeclaims/status, pods, replicationcontrollers, replicationcontrollers/scale, serviceaccounts, services, services/status

get,list, watch

pods/attach, pods/exec, pods/portforward, pods/proxy, secrets, services/proxy

get, list, watch

configmaps, events, persistentvolumeclaims, replicationcontrollers, replicationcontrollers/scale, secrets, serviceaccounts, services, services/proxy

create, delete, deletecollection, patch, update

pods, pods/attach, pods/exec, pods/portforward, pods/proxy

create, delete, deletecollection, patch, update

serviceaccounts

impersonate

bindings, events, limitranges, namespaces/status, pods/log, pods/status, replicationcontrollers/status, resourcequotas, resourcequotas/status

get, list, watch

namespaces

get,list, watch

Kebijakan akses ini mencakup izin yang memberikan akses administrator IAM utama ke klaster. Ketika dikaitkan dengan entri akses, cakupan aksesnya biasanya cluster, bukan Kubernetes namespace. Jika Anda ingin IAM kepala sekolah memiliki ruang lingkup administratif yang lebih terbatas, pertimbangkan untuk mengaitkan mazonEKSAdmin kebijakan akses Kebijakan Sebuah mazonEKSAdmin Kebijakan A ke entri akses Anda.

ARN arn:aws: eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy

Grup Kubernetes API Kubernetes nonResource URLs Sumber daya Kubernetes Kata kerja Kubernetes (izin)

\*

\*

\*

\*

\*

Kebijakan akses ini mencakup izin yang memberikan akses IAM utama untuk mendaftarkan/melihat semua sumber daya dalam klaster. Perhatikan ini termasuk Rahasia Kubernetes.

ARN arn:aws: eks::aws:cluster-access-policy/AmazonEKSAdminViewPolicy

Grup Kubernetes API Sumber daya Kubernetes Kata kerja Kubernetes (izin)

\*

\*

`get, watch``

Kebijakan akses ini mencakup izin yang memungkinkan IAM prinsipal untuk mengedit sebagian besar Kubernetes sumber daya.

ARN arn:aws: eks::aws:cluster-access-policy/AmazonEKSEditPolicy

Grup Kubernetes API Sumber daya Kubernetes Kata kerja Kubernetes (izin)

apps

daemonsets, deployments, deployments/rollback, deployments/scale, replicasets, replicasets/scale, statefulsets, statefulsets/scale

create, delete, deletecollection, patch, update

apps

controllerrevisions, daemonsets, daemonsets/status, deployments, deployments/scale, deployments/status, replicasets, replicasets/scale, replicasets/status, statefulsets, statefulsets/scale, statefulsets/status

get, list, watch

autoscaling

horizontalpodautoscalers, horizontalpodautoscalers/status

get, list, watch

autoscaling

horizontalpodautoscalers

create, delete, deletecollection, patch, update

batch

cronjobs, jobs

create, delete, deletecollection, patch, update

batch

cronjobs, cronjobs/status, jobs, jobs/status

get, list, watch

discovery.k8s.io

endpointslices

get, list, watch

extensions

daemonsets, deployments, deployments/rollback, deployments/scale, ingresses, networkpolicies, replicasets, replicasets/scale, replicationcontrollers/scale

create, delete, deletecollection, patch, update

extensions

daemonsets, daemonsets/status, deployments, deployments/scale, deployments/status, ingresses, ingresses/status, networkpolicies, replicasets, replicasets/scale, replicasets/status, replicationcontrollers/scale

get, list, watch

networking.k8s.io

ingresses, networkpolicies

create, delete, deletecollection, patch, update

networking.k8s.io

ingresses, ingresses/status, networkpolicies

get, list, watch

policy

poddisruptionbudgets

create, delete, deletecollection, patch, update

policy

poddisruptionbudgets, poddisruptionbudgets/status

get, list, watch

namespaces

get, list, watch

pods/attach, pods/exec, pods/portforward, pods/proxy, secrets, services/proxy

get, list, watch

serviceaccounts

impersonate

pods, pods/attach, pods/exec, pods/portforward, pods/proxy

create, delete, deletecollection, patch, update

configmaps, events, persistentvolumeclaims, replicationcontrollers, replicationcontrollers/scale, secrets, serviceaccounts, services, services/proxy

create, delete, deletecollection, patch, update

configmaps, endpoints, persistentvolumeclaims, persistentvolumeclaims/status, pods, replicationcontrollers, replicationcontrollers/scale, serviceaccounts, services, services/status

get, list, watch

bindings, events, limitranges, namespaces/status, pods/log, pods/status, replicationcontrollers/status, resourcequotas, resourcequotas/status

get, list, watch

Kebijakan akses ini mencakup izin yang memungkinkan IAM prinsipal untuk melihat sebagian besar Kubernetes sumber daya.

ARN arn:aws: eks::aws:cluster-access-policy/AmazonEKSViewPolicy

Grup Kubernetes API Sumber daya Kubernetes Kata kerja Kubernetes (izin)

apps

controllerrevisions, daemonsets, daemonsets/status, deployments, deployments/scale, deployments/status, replicasets, replicasets/scale, replicasets/status, statefulsets, statefulsets/scale, statefulsets/status

get, list, watch

autoscaling

horizontalpodautoscalers, horizontalpodautoscalers/status

get, list, watch

batch

cronjobs, cronjobs/status, jobs, jobs/status

get, list, watch

discovery.k8s.io

endpointslices

get, list, watch

extensions

daemonsets, daemonsets/status, deployments, deployments/scale, deployments/status, ingresses, ingresses/status, networkpolicies, replicasets, replicasets/scale, replicasets/status, replicationcontrollers/scale

get, list, watch

networking.k8s.io

ingresses, ingresses/status, networkpolicies

get, list, watch

policy

poddisruptionbudgets, poddisruptionbudgets/status

get, list, watch

configmaps, endpoints, persistentvolumeclaims, persistentvolumeclaims/status, pods, replicationcontrollers, replicationcontrollers/scale, serviceaccounts, services, services/status

get, list, watch

bindings,events,limitranges,namespaces/status,pods/log,pods/status,replicationcontrollers/status,resourcequotas, r esourcequotas/status

get, list, watch

namespaces

get, list, watch

Akses pembaruan kebijakan

Lihat detail tentang pembaruan untuk mengakses kebijakan, sejak diperkenalkan. Untuk peringatan otomatis tentang perubahan pada halaman ini, berlangganan RSS feed diRiwayat dokumen.

Perubahan Deskripsi Tanggal

Tambahkan AmazonEKSAdminViewPolicy

Tambahkan kebijakan baru untuk akses tampilan yang diperluas, termasuk sumber daya seperti Rahasia.

April 23, 2024

Kebijakan akses diperkenalkan.

Amazon EKS memperkenalkan kebijakan akses.

29 Mei 2023