Memberikan akses kepada pengguna Kubernetes dengan eksternal OIDC penyedia - Amazon EKS

Bantu tingkatkan halaman ini

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

Ingin berkontribusi pada panduan pengguna ini? Pilih Edit halaman ini pada GitHub tautan yang terletak di panel kanan setiap halaman. 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.

Memberikan akses kepada pengguna Kubernetes dengan eksternal OIDC penyedia

Amazon EKS mendukung penggunaan OpenID Connect (OIDC) penyedia identitas sebagai metode untuk mengautentikasi pengguna ke cluster Anda. OIDC Penyedia identitas dapat digunakan dengan, atau sebagai alternatif untuk AWS Identity and Access Management (IAM). Untuk informasi selengkapnya tentang menggunakan IAM, lihat Pemberian Izin IAM akses pengguna dan peran ke Kubernetes APIs. Setelah mengonfigurasi otentikasi ke cluster Anda, Anda dapat membuat Kubernetes rolesdan clusterroles untuk menetapkan izin ke peran, dan kemudian mengikat peran ke identitas menggunakan Kubernetes rolebindings dan clusterrolebindings. Untuk informasi selengkapnya, lihat Menggunakan Otorisasi RBAC di Kubernetes dokumentasi.

  • Anda dapat mengasosiasikan satu OIDC penyedia identitas ke cluster Anda.

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

  • URL penerbit dari OIDC penyedia identitas harus dapat diakses publik, sehingga Amazon EKS dapat menemukan kunci penandatanganan. Amazon EKS tidak mendukung OIDC penyedia 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 OIDC pengguna penyedia identitas. Ini karena pembuat cluster berinteraksi dengan Amazon EKS APIs, bukan Kubernetes APIs.

  • OIDC pengguna yang diautentikasi oleh penyedia identitas tercantum dalam log audit klaster jika CloudWatch log diaktifkan untuk bidang kontrol. Untuk informasi selengkapnya, lihat Mengaktifkan atau menonaktifkan log bidang kontrol.

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

Mengasosiasikan sebuah OIDC penyedia identitas

Sebelum Anda dapat mengasosiasikan OIDC penyedia identitas dengan cluster 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 iss klaim 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.

Kaitkan penyedia identitas 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 Anda OIDC penyedia identitas. 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 tentukansystem:, atau bagian mana pun dari string itu, untuk groupsPrefix atauusernamePrefix.

  2. Buat penyedia.

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

Kaitkan penyedia identitas menggunakan AWS Konsol

  1. Buka konsol Amazon EKS.

  2. Pilih klaster Anda, lalu pilih tab Access.

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

  4. Pada Associate OIDC Halaman Penyedia Identitas, 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 OIDC ID klien penyedia 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 mana pun dari string itu.

      • 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 mana pun dari string itu..

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

        1. Untuk digunakan kubectl untuk bekerja dengan cluster Anda dan OIDC penyedia identitas, lihat Menggunakan kubectl di Kubernetes dokumentasi.

Contoh kebijakan IAM

Jika Anda ingin mencegah OIDC penyedia identitas agar tidak 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 dan Tindakan IAM di 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 OIDC asosiasi penyedia identitas jika clientID ada kubernetes dan issuerUrl adalah https://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 divalidasi OIDC penyedia identitas

Amazon EKS memelihara hubungan dengan jaringan mitra yang menawarkan dukungan untuk kompatibel OIDC penyedia identitas. 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 yang didukung secara komersial OIDC penyedia identitas kompatibel yang tidak tercantum di sini, kemudian hubungi tim mitra kami di aws-container-partners@amazon. com untuk informasi lebih lanjut.