Mengautentikasi pengguna untuk klaster Anda dari penyedia OpenID Connect identitas - 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.

Mengautentikasi pengguna untuk klaster Anda dari penyedia OpenID Connect identitas

Amazon EKS mendukung penggunaan OpenID Connect (OIDC) penyedia identitas sebagai metode untuk mengautentikasi pengguna ke klaster Anda. OIDCpenyedia identitas dapat digunakan dengan, atau sebagai alternatif untuk AWS Identity and Access Management (IAM). Untuk informasi selengkapnya tentang menggunakan IAM, lihat Berikan akses ke Kubernetes API . Setelah mengonfigurasi otentikasi ke klaster, Anda dapat membuat Kubernetes roles dan clusterroles menetapkan izin ke peran, lalu mengikat peran ke identitas menggunakan dan. Kubernetes rolebindings clusterrolebindings Untuk informasi selengkapnya, lihat Menggunakan Otorisasi RBAC dalam dokumentasi. Kubernetes

Pertimbangan
  • Anda dapat mengaitkan satu penyedia OIDC identitas ke klaster Anda.

  • Kubernetestidak menyediakan penyedia OIDC identitas. Anda dapat menggunakan penyedia OIDC identitas publik yang ada, atau Anda dapat menjalankan penyedia identitas Anda sendiri. Untuk daftar penyedia tersertifikasi, lihat OpenID Certification di situs OpenID.

  • URL penerbit penyedia OIDC identitas harus dapat diakses publik, sehingga Amazon EKS dapat menemukan kunci penandatanganan. Amazon EKS tidak mendukung penyedia OIDC identitas dengan sertifikat yang ditandatangani sendiri.

  • Anda tidak dapat menonaktifkan autentikasi IAM ke klaster Anda, karena masih diperlukan untuk menggabungkan node ke cluster.

  • Cluster Amazon EKS masih harus dibuat oleh prinsipal AWS IAM, bukan pengguna penyedia OIDC identitas. Ini karena pembuat cluster berinteraksi dengan Amazon EKS API, bukan Kubernetes API.

  • OIDCpengguna yang diautentikasi oleh penyedia identitas tercantum dalam log audit klaster jika CloudWatch log dihidupkan untuk bidang kontrol. Untuk informasi selengkapnya, lihat Mengaktifkan dan menonaktifkan log bidang kendali.

  • Anda tidak dapat masuk ke akun AWS Management Console dengan akun dari OIDC penyedia. Anda hanya dapat melihat Kubernetes sumber daya di konsol dengan masuk ke AWS Identity and Access Management akun AWS Management Console dengan.

Kaitkan penyedia OIDC identitas

Sebelum Anda dapat mengaitkan penyedia OIDC identitas dengan klaster Anda, Anda memerlukan informasi berikut dari penyedia Anda:

URL Penerbit

URL penyedia identitas OIDC yang memungkinkan server API menemukan kunci penandatanganan publik untuk memverifikasi token. URL harus dimulai dengan https:// dan harus sesuai dengan klaim iss dalam token ID OIDC penyedia. Sesuai dengan standar OIDC, komponen jalur diperbolehkan tetapi parameter kueri tidak. Biasanya URL hanya terdiri dari nama host, seperti https://server.example.org atau https://example.com. URL ini harus mengarah ke level di bawah .well-known/openid-configuration dan harus dapat diakses oleh publik melalui internet.

ID Klien (juga dikenal sebagai audiens)

ID untuk aplikasi klien yang membuat permintaan otentikasi ke penyedia identitas OIDC.

Anda dapat mengaitkan penyedia identitas menggunakan eksctl atau AWS Management Console.

eksctl
Untuk mengaitkan penyedia OIDC identitas ke klaster Anda menggunakan eksctl
  1. Buat file bernama associate-identity-provider.yaml dengan isi berikut ini. Ganti example values dengan milik Anda sendiri. Nilai-nilai di identityProviders bagian ini diperoleh dari penyedia OIDC identitas Anda. Nilai hanya diperlukan untuk name, type, issuerUrl, dan pengaturan clientId di bawah identityProviders.

    --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: your-region-code identityProviders: - name: my-provider type: oidc issuerUrl: https://example.com clientId: kubernetes usernameClaim: email usernamePrefix: my-username-prefix groupsClaim: my-claim groupsPrefix: my-groups-prefix requiredClaims: string: string tags: env: dev
    penting

    Jangan tentukan system:, atau bagian dari string tersebut, untuk groupsPrefix atau usernamePrefix.

  2. Buat penyedia.

    eksctl associate identityprovider -f associate-identity-provider.yaml
  3. Untuk digunakan kubectl untuk bekerja dengan klaster dan penyedia OIDC identitas Anda, lihat Menggunakan kubectl dalam Kubernetes dokumentasi.

AWS Management Console
Untuk mengaitkan penyedia OIDC identitas ke klaster Anda menggunakan AWS Management Console
  1. Buka konsol Amazon EKS di https://console.aws.amazon.com/eks/home#/clusters.

  2. Pilih klaster Anda, lalu pilih tab Access.

  3. Di bagian Penyedia OIDC Identitas, pilih Penyedia Identitas Rekanan.

  4. Pada halaman Penyedia OIDC Identitas Rekanan, masukkan atau pilih opsi berikut, lalu pilih Rekanan.

    • Untuk Nama, masukkan nama unik untuk penyedia.

    • Untuk Penerbit URL, masukkan URL untuk penyedia Anda. URL ini harus dapat diakses melalui internet.

    • Untuk ID Klien, masukkan ID klien penyedia OIDC identitas (juga dikenal sebagai audiens).

    • Untuk Klaim nama pengguna, masukkan klaim untuk digunakan sebagai nama pengguna.

    • Untuk Klaim grup, masukkan klaim yang akan digunakan sebagai grup pengguna.

    • (Opsional) Pilih Opsi lanjutan, masukkan atau pilih informasi berikut.

      • Prefiks nama pengguna – Masukkan prefiks untuk ditambahkan ke klaim nama pengguna. Prefiks diawali dengan nama pengguna klaim untuk mencegah bentrokan dengan nama yang sudah ada. Jika Anda tidak memberikan nilai, dan nama pengguna adalah nilai selain email, prefiks default ke dalam nilai untuk Penerbit URL. Anda dapat menggunakan -nilai untuk menonaktifkan semua prefiks. Jangan tentukan system: atau bagian dari string tersebut.

      • Prefiks grup – Masukkan prefiks untuk ditambahkan ke klaim grup. Prefiks ditambahkan ke klaim grup untuk mencegah bentrokan dengan nama yang sudah ada (seperti system: groups). Misalnya, oidc: nilai membuat nama grup seperti oidc:engineering dan oidc:infra. Jangan tentukan system: atau bagian dari string tersebut.

      • Klaim yang diperlukan – Pilih Tambahkan klaim dan masukkan satu atau beberapa pasangan nilai kunci yang menjelaskan klaim yang diperlukan dalam token ID klien. Pasangan menggambarkan klaim yang diperlukan dalam ID Token. Jika diatur, setiap klaim diverifikasi untuk ada dalam token ID dengan nilai yang cocok.

  5. Untuk digunakan kubectl untuk bekerja dengan klaster dan penyedia OIDC identitas Anda, lihat Menggunakan kubectl dalam Kubernetes dokumentasi.

Putuskan hubungan penyedia OIDC identitas dari klaster Anda

Jika Anda memisahkan penyedia OIDC identitas dari klaster Anda, pengguna yang termasuk dalam penyedia tidak dapat lagi mengakses klaster. Namun, Anda masih dapat mengakses cluster dengan prinsipal IAM.

Untuk memisahkan penyedia OIDC identitas dari klaster Anda menggunakan AWS Management Console
  1. Buka konsol Amazon EKS di https://console.aws.amazon.com/eks/home#/clusters.

  2. Di bagian Penyedia OIDC Identitas, pilih Disassociate, masukkan nama penyedia identitas, lalu pilihDisassociate.

Contoh kebijakan IAM

Jika Anda ingin mencegah penyedia OIDC identitas dikaitkan dengan klaster, buat dan kaitkan kebijakan IAM berikut ke akun IAM administrator Amazon EKS Anda. Untuk informasi selengkapnya, lihat Membuat kebijakan IAM dan Menambahkan izin identitas IAM di Panduan Pengguna IAM dan Tindakan, sumber daya, dan kunci kondisi untuk Amazon Elastic Kubernetes Service dalam Referensi Otorisasi Layanan.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "denyOIDC", "Effect": "Deny", "Action": [ "eks:AssociateIdentityProviderConfig" ], "Resource": "arn:aws:eks:us-west-2.amazonaws.com:111122223333:cluster/*" }, { "Sid": "eksAdmin", "Effect": "Allow", "Action": [ "eks:*" ], "Resource": "*" } ] }

Contoh kebijakan berikut memungkinkan asosiasi penyedia OIDC identitas jika clientID is kubernetes dan issuerUrl ishttps://cognito-idp.us-west-2amazonaws.com/*.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCognitoOnly", "Effect": "Deny", "Action": "eks:AssociateIdentityProviderConfig", "Resource": "arn:aws:eks:us-west-2:111122223333:cluster/my-instance", "Condition": { "StringNotLikeIfExists": { "eks:issuerUrl": "https://cognito-idp.us-west-2.amazonaws.com/*" } } }, { "Sid": "DenyOtherClients", "Effect": "Deny", "Action": "eks:AssociateIdentityProviderConfig", "Resource": "arn:aws:eks:us-west-2:111122223333:cluster/my-instance", "Condition": { "StringNotEquals": { "eks:clientId": "kubernetes" } } }, { "Sid": "AllowOthers", "Effect": "Allow", "Action": "eks:*", "Resource": "*" } ] }

Mitra penyedia OIDC identitas yang divalidasi

Amazon EKS memelihara hubungan dengan jaringan mitra yang menawarkan dukungan untuk penyedia OIDC identitas yang kompatibel. Lihat dokumentasi mitra berikut untuk detail tentang cara mengintegrasikan penyedia identitas dengan Amazon EKS.

Mitra

Produk

Dokumentasi

PingIdentity

PingOne untuk Enterprise

Instruksi instalasi

Amazon EKS bertujuan untuk memberikan berbagai pilihan untuk mencakup semua kasus penggunaan. Jika Anda mengembangkan penyedia identitas OIDC kompatibel yang didukung secara komersial yang tidak tercantum di sini, hubungi tim mitra kami di aws-container-partners@amazon.com untuk informasi lebih lanjut.