Mengaitkan kebijakan akses dengan entri akses - Amazon EKS

Bantu tingkatkan halaman ini

Ingin berkontribusi pada panduan pengguna ini? Gulir ke bagian bawah halaman ini dan pilih Edit halaman ini GitHub. Kontribusi Anda akan membantu membuat panduan pengguna kami lebih baik untuk semua orang.

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 mencakup Kubernetes izin, bukan IAM izin. Sebelum mengaitkan kebijakan akses ke entri akses, pastikan Anda sudah terbiasa 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 serta kelola Kubernetes objek kontrol akses berbasis peran. Untuk informasi selengkapnya, lihat Buat entri akses.

Prasyarat

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 beberapa ruang Kubernetes 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 ruang nama, 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 IAM prinsipal memiliki semua izin di semua kebijakan akses terkait. Ini juga memiliki semua izin dalam setiap Kubernetes Role atau ClusterRole objek yang ditentukan dalam setiap Kubernetes Role dan RoleBinding objek yang menentukan nama grup.

  • Jika menjalankan kubectl auth can-i --list perintah, Anda tidak akan melihat Kubernetes izin apa pun yang ditetapkan oleh kebijakan akses yang terkait dengan entri akses untuk IAM prinsipal yang Anda gunakan saat menjalankan perintah. Perintah hanya menampilkan Kubernetes izin jika Anda telah memberikannya Kubernetes Role atau 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 klaster Anda, seperti menggunakan kubectl perintah dengan --as username atau--as-group group-name, Anda memaksa penggunaan otorisasi. Kubernetes RBAC 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 Anda berikan kepada mereka Kubernetes Role atau ClusterRole objek yang 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 Role atau ClusterRole objek yang Anda ikat ke nama grup atau nama pengguna yang Anda tentukan untuk entri akses. Untuk informasi selengkapnya, lihat Peniruan identitas pengguna dalam dokumentasi. Kubernetes

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

AWS Management Console
Untuk mengaitkan kebijakan akses ke entri akses menggunakan AWS Management Console
  1. Buka EKS konsol Amazon di https://console.aws.amazon.com/eks/rumah#/cluster.

  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 ruang Kubernetes nama. Jika Anda memilih Kubernetesnamespace, 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
Prasyarat

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 seperti yumapt-get,, atau Homebrew untuk macOS sering beberapa versi di belakang versi terbaru AWS CLI. Untuk menginstal versi terbaru, lihat Menginstal, memperbarui, dan menghapus konfigurasi AWS CLI dan Cepat dengan aws configure di Panduan AWS Command Line Interface Pengguna. AWS CLI Versi 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.

Untuk mengaitkan kebijakan akses ke entri akses
  1. 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.

  2. 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"
        ]
    }
  3. Kaitkan kebijakan akses ke entri akses. Contoh berikut mengaitkan kebijakan AmazonEKSViewPolicy akses ke entri akses. Kapanpun my-role IAMperan mencoba mengakses Kubernetes objek di klaster, Amazon EKS akan mengotorisasi peran untuk menggunakan izin dalam kebijakan untuk mengakses Kubernetes objek di my-namespace1 and my-namespace2 Kubernetesruang nama saja. Ganti my-cluster dengan nama cluster Anda, 111122223333 dengan Akun AWS ID Anda, dan my-role dengan nama IAM peran yang Anda inginkan Amazon EKS untuk mengotorisasi akses ke objek Kubernetes cluster.

    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.

Untuk memisahkan kebijakan akses dari entri akses
  1. 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 ruang nama. Kubernetes

  2. 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 Role dan 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 RBAC objek dan tentukan nama grup untuk entri akses Anda. Untuk informasi selengkapnya, lihat Buat entri akses. Izin yang terkandung dalam kebijakan akses mirip dengan izin dalam peran klaster yang dihadapi Kubernetes pengguna. Untuk informasi selengkapnya, lihat Peran yang dihadapi pengguna dalam dokumentasi. Kubernetes

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, cakupan 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 A mazonEKSCluster AdminPolicy akses ke entri akses Anda.

ARNarn:aws:eks::aws:cluster-access-policy/AmazonEKSAdminPolicy

KubernetesAPIkelompok Sumber daya Kubernetes Kuberneteskata kerja (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 kebijakan Sebuah mazonEKSAdmin Kebijakan akses ke entri akses Anda.

ARNarn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy

KubernetesAPIkelompok Kubernetes nonResourceURLs Sumber daya Kubernetes Kuberneteskata kerja (izin)
* * *
* *

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

ARNarn:aws:eks::aws:cluster-access-policy/AmazonEKSAdminViewPolicy

KubernetesAPIkelompok Sumber daya Kubernetes Kuberneteskata kerja (izin)
* * get, list, watch

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

ARNarn:aws:eks::aws:cluster-access-policy/AmazonEKSEditPolicy

KubernetesAPIkelompok Sumber daya Kubernetes Kuberneteskata kerja (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.

ARNarn:aws:eks::aws:cluster-access-policy/AmazonEKSViewPolicy

KubernetesAPIkelompok Sumber daya Kubernetes Kuberneteskata kerja (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, rresourcequotas, r esourcequotas/status get, list, watch
namespaces get, list, watch

Mengakses pembaruan kebijakan

Lihat detail tentang pembaruan untuk mengakses kebijakan, sejak diperkenalkan. Untuk peringatan otomatis tentang perubahan pada halaman ini, berlangganan RSS umpan di halaman riwayat EKS Dokumen Amazon.

Perubahan Deskripsi Tanggal
Menambahkan 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