Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Otentikasi entri akses Amazon EKS
Amazon EKS mendukung dua mekanisme untuk memberikan izin utama IAM untuk memanggil API cluster: Kubernetes API entri akses lama aws-auth ConfigMap dan API entri akses yang lebih baru. Entri akses memberikan akses Kubernetes API ke prinsipal IAM tanpa mengharuskan Anda untuk mengedit a ConfigMap. AWS Batch dapat mengotentikasi ke cluster Anda melalui salah satu mekanisme.
Ketika Anda eksConfiguration.accessEntry.desiredState mengatur ENABLED pada lingkungan komputasi, AWS Batch dapat mengelola entri akses untuk lingkungan komputasi tersebut di cluster. Anda tidak perlu lagi mengedit secara manual aws-auth ConfigMap.
Apakah AWS Batch menyediakan entri akses tergantung pada lingkungan AWS Batch komputasi dan konfigurasi cluster Amazon EKS Anda. Lihat Interaksi dengan AuthenticationMode cluster untuk detail.
Nilai untuk akses Entry.desiredState
Bid desiredState ang pada EksAccessEntry menyatakan status entri akses yang diinginkan untuk lingkungan komputasi. Nilai yang valid adalah:
ENABLED-
AWS Batch membuat entr AWS Batch i akses yang dikelola pada cluster untuk lingkungan komputasi. AWS Batch hanya akan membuat entri AWS Batch akses yang dikelola jika semua lingkungan komputasi di cluster telah disetel
desiredStatekeENABLED(lihat Bagaimana AWS Batch mendamaikan DesiredState di seluruh lingkungan komputasi untuk detailnya). DISABLED-
AWS Batch menghapus entri akses AWS Batch-managed untuk cluster. AWS Batch hanya akan menghapus entri AWS Batch akses yang dikelola jika semua lingkungan komputasi di cluster telah disetel
desiredStatekeDISABLED(lihat Bagaimana AWS Batch mendamaikan DesiredState di seluruh lingkungan komputasi untuk detailnya). Akses ke cluster harus dikonfigurasi melaluiaws-authConfigMap. INHERIT_FROM_CLUSTER-
AWS Batch menyimpang ke entr
statusi akses cluster saat ini. Pada cluster Amazon EKS yang mode otentikasinya adalahAPIAWS Batch , membuat dan mengelola entri akses karena cluster tidak memiliki tempataws-authConfigMap untuk kembali. Pada cluster yang mode otentikasinya adalahCONFIG_MAPatauAPI_AND_CONFIG_MAP, AWS Batch tidak menambahkan atau menghapus entri akses.
Lingkungan komputasi juga mengekspos bidang read-only dalam responsaccessEntry.status. DescribeComputeEnvironments ACTIVEberarti bahwa entri akses yang AWS Batch dikelola -untuk lingkungan komputasi ada di cluster dan diutamakan daripada. aws-auth ConfigMap INACTIVEberarti tidak ada AWS Batch entri akses yang dikelola. Ini bisa karena desiredStateDISABLED, karena lingkungan komputasi yang menargetkan cluster belum setujudesiredState, atau karena entri belum disediakan. Jika accessEntry.status yaINACTIVE, Batch menggunakan aws-auth ConfigMap untuk akses cluster.
catatan
Entri akses ACTIVE melaporkan segera setelah ada di cluster, meskipun AWS Batch belum selesai mengaitkan kebijakan akses yang membuatnya dapat digunakan. Jika status lingkungan komputasi berubah menjadi INVALID while accessEntry.status isACTIVE, lihatPengaturan entri akses Amazon EKS tidak lengkap.
catatan
Jika Anda menghilangkan accessEntry bidang, AWS Batch tidak merekam a desiredState untuk lingkungan komputasi, dan DescribeComputeEnvironments tidak mengembalikannya. Untuk tujuan penyediaan entri akses, AWS Batch berperilaku seperti yang dilakukannya. INHERIT_FROM_CLUSTER
Interaksi dengan AuthenticationMode cluster
Bagaimana AWS Batch berperilaku untuk tertentu desiredState tergantung pada mode otentikasi cluster. Tabel berikut berlaku untuk keduanya CreateComputeEnvironment danUpdateComputeEnvironment.
Cluster |
Lingkungan komputasi |
Lingkungan komputasi |
Lingkungan komputasi |
|---|---|---|---|
|
Entri akses tidak tersedia di cluster, jadi AWS Batch tidak membuat atau menghapusnya. AWS Batch masih mencatat nilai yang Anda tentukan. Setelah Anda mengubah mode otentikasi cluster, nilai yang direkam akan berlaku pada panggilan berikutnya |
||
|
AWS Batch membandingkan nilai yang direkam di seluruh lingkungan komputasi yang berbagi cluster — lihatBagaimana AWS Batch mendamaikan DesiredState di seluruh lingkungan komputasi. |
Mode akses yang ada dipertahankan. AWS Batch tidak menambah atau menghapus entri akses. |
|
|
Entri akses dibuat dan dipelihara di cluster. |
Permintaan ditolak. Cluster dalam mode ini tidak mendukung |
Entri akses dibuat dan dipelihara di cluster. Ketika cluster |
Bagaimana AWS Batch mendamaikan DesiredState di seluruh lingkungan komputasi
Karena satu cluster Amazon EKS dapat mendukung beberapa lingkungan AWS Batch komputasi, konfigurasi akses cluster adalah sumber daya bersama. AWS Batch oleh karena itu mendamaikan, atau membandingkan dan menyelesaikan, desiredState nilai-nilai yang dicatat di seluruh lingkungan komputasi tersebut.
Ketika cluster authenticationMode adaAPI_AND_CONFIG_MAP, bandingkan rekaman AWS Batch untuk setiap lingkungan komputasi di AWS akun dan Wilayah yang sama yang AWS menargetkan cluster. desiredState AWS Batch menggunakan perbandingan ini untuk menentukan apakah akan menambah atau menghapus entri akses pada masing-masing CreateComputeEnvironment atau UpdateComputeEnvironment operasi yang menentukandesiredState.
- Setiap lingkungan komputasi memiliki
desiredState=ENABLED -
AWS Batch membuat entri akses pada cluster.
- Setiap lingkungan komputasi memiliki
desiredState=DISABLED -
AWS Batch menghapus entri akses dari cluster jika ada.
desiredStateNilai yang direkam tidak semuanya cocok-
AWS Batch mempertahankan mode akses yang ada. Entri akses tidak ditambahkan atau dihapus. Ini termasuk campuran
ENABLED,, danDISABLEDINHERIT_FROM_CLUSTER, dan juga mencakup lingkungan komputasi apa pun yang tidak memiliki catatandesiredState.
catatan
Untuk mentransisi cluster yang mode otentikasinya adalah API_AND_CONFIG_MAP dari aws-auth ConfigMap ke otentikasi entri akses, atur desiredState=ENABLED pada setiap lingkungan AWS Batch komputasi yang menargetkan cluster. Untuk transisi kembali, atur desiredState=DISABLED pada masing-masing dari mereka.
Apa AWS Batch membuat di cluster Anda
AWS Batch membuat satu entri akses per cluster yang memenuhi persyaratan di atas, kemudian mengaitkan kebijakan akses AWSBatchClusterPolicy Amazon EKS dengan entri akses tersebut. Entri akses adalah per cluster daripada per lingkungan komputasi, sehingga semua lingkungan AWS Batch komputasi yang menargetkan cluster yang sama membagikannya.
catatan
Menghapus lingkungan komputasi tidak menghapus entri akses, bahkan jika itu adalah lingkungan AWS Batch komputasi terakhir di cluster. Untuk menghapus entri akses yang AWS Batch dikelola -, panggil UpdateComputeEnvironment dengan desiredState=DISABLED pada setiap lingkungan AWS Batch komputasi yang menargetkan cluster sebelum Anda menghapusnya.
Entri akses tidak cukup dengan sendirinya untuk menjalankan pekerjaan di cluster. Untuk Kubernetes izin dan akses node yang harus Anda konfigurasikan sendiri, lihatKonfigurasi cluster yang masih harus Anda berikan.
Izin yang diperlukan
AWS Batch mengelola entri akses menggunakan kredenSIAL identitas IAM yang memanggil UpdateComputeEnvironment operasi CreateComputeEnvironment atau. Identitas itu harus diizinkan untuk melakukan tindakan Amazon EKS berikut:
-
eks:DescribeCluster -
eks:DescribeAccessEntry -
eks:CreateAccessEntry -
eks:AssociateAccessPolicy -
eks:DeleteAccessEntry
Konfigurasikan entri akses
Anda dapat mengonfigurasi entri akses pada lingkungan komputasi melalui eksConfiguration.accessEntry bidang UpdateComputeEnvironment API CreateComputeEnvironment atau.
Konfigurasi cluster yang masih harus Anda berikan
Entri akses hanya mengontrol cara mengo AWS Batch tentikasi ke cluster Anda. Itu tidak memberikan Kubernetes izin AWS Batch yang diperlukan untuk menjalankan pekerjaan Anda, dan tidak membiarkan instans yang dil AWS Batch uncurkan bergabung dengan cluster. Terlepas dari mekanisme otentikasi yang Anda gunakan, Anda masih harus mengonfigurasi kedua hal berikut ini.
penting
Setelah entri akses AWS Batch-managed dibuat untuk peran AWS Batch terkait layanan pada cluster (accessEntry.status=ACTIVE), itu diutamakan daripada aws-auth ConfigMap konfigurasi untuk peran tersebut. En ConfigMap tri untuk peran AWS Batch terkait layanan tidak digunakan, dan mengo AWS Batch tentikasi menggunakan entri akses sebagai gantinya. Untuk kembali ke ConfigMap otentikasi, atur desiredState=DISABLED pada semua lingkungan komputasi yang menargetkan cluster. Ini menghapus entri akses AWS Batch-managed.
- Kubernetesizin untuk nam AWS Batch espace
-
AWS Batch membutuhkan Kubernetes izin untuk membuat dan mengelola pod di namespace yang Anda tentukan.
eksConfiguration.kubernetesNamespaceBuat namespace, lalu konfigurasikan izin tersebut menggunakan salah satu metode berikut tergantung pada pendekatan otentikasi Anda:-
Asosiasi kebijakan akses (diperlukan saat entri akses
status=ACTIVE) — Saat Anda mengaturdesiredState=ENABLEDsemua lingkungan komputasi yang menargetkan cluster, AWS Batch membuat entri akses dengan tingkat clusterAWSBatchClusterPolicy. Anda kemudian harus mengaitkan ruang nama yang dicakup untuk memberikan AWS Batch izinAWSBatchNamespacePolicyuntuk membuat dan mengelola pod.Setelah entri akses mencapai
status=ACTIVE, kaitkan kebijakan namespace menggunakan: AWS CLI$aws eks associate-access-policy \ --cluster-namemy-cluster\ --principal-arnarn:aws:iam::123456789012:role/aws-service-role/batch.amazonaws.com/AWSServiceRoleForBatch\ --policy-arn arn:aws:eks::aws:cluster-access-policy/AWSBatchNamespacePolicy \ --access-scope type=namespace,namespaces=my-aws-batch-namespaceGanti
my-aws-batch-namespacedengan nilai yang Anda tentukaneksConfiguration.kubernetesNamespace.penting
Tanpa asosiasi kebijakan ruang nama, pekerjaan akan tetap terjebak dalam status.
RUNNABLEKebijakan tingkat cluster saja tidak memberikan izin pengelolaan pod. -
Kubernetesrole and role binding (saat entri akses
status=INACTIVE) — Jika entri akses yang AWS Batch dikelola tidak aktif, buat Kubernetes peran dan binding peran yang memberikan izin tersebut, seperti yang dijelaskan dalam. Langkah 2: Siapkan cluster Amazon EKS Anda untuk AWS Batch Anda melakukan ini sekali untuk setiap cluster.catatan
Ketika entri AWS Batch akses yang dikelola aktif (
status=ACTIVE), peran Kubernetes RBAC dilewati. Anda harus menggunakan metode asosiasi kebijakan akses sebagai gantinya.
AWS Batch tidak membuat sumber daya ini untuk Anda, dan entri AWS Batch akses yang dikelola tidak menggantikannya. Jika hilang, lingkungan komputasi masih bisa menjadi
VALIDsementara pekerjaan Anda gagal dimulai. -
- Akses cluster untuk peran instance node
-
Instans yang dil AWS Batch uncurkan bergabung dengan cluster menggunakan profil instance yang Anda tentukan
computeResources.instanceRole. Peran itu membutuhkan aksesnya sendiri ke cluster, yang terpisah dari entri akses AWS Batch yang dikelola dan yang AWS Batch tidak dikonfigurasi.Metode konfigurasi tergantung pada cluster Anda
authenticationMode:-
Pada cluster yang
authenticationModeadalahCONFIG_MAP— Anda harus menggunakanaws-authConfigMap. Entri akses tidak didukung pada cluster ini. -
Pada cluster yang
authenticationModeadalahAPI_AND_CONFIG_MAP— Peran instance node dapat mengotentikasi menggunakan entriaws-authConfigMap atau akses. Jika peran instance sudah dipetakan di ConfigMap, node akan berhasil bergabung tanpa membuat entri akses untuk peran tersebut. -
Pada cluster yang
authenticationModeadalahAPI— Anda harus membuat entri akses untuk peran instance node. Tidakaws-authConfigMap digunakan untuk otentikasi pada cluster ini.
Untuk membuat entri akses untuk peran instance node, gunakan AWS CLI:
$aws eks create-access-entry \ --cluster-namemy-cluster\ --principal-arnarn:aws:iam::123456789012:role/my-node-instance-role\ --type EC2_LINUX$aws eks associate-access-policy \ --cluster-namemy-cluster\ --principal-arnarn:aws:iam::123456789012:role/my-node-instance-role\ --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSWorkerNodePolicy \ --access-scope type=clusterUntuk informasi selengkapnya, lihat Membuat entr i akses di Panduan Pengguna Amazon EKS .
penting
Tanpa akses cluster yang tepat untuk peran instance node, instans EC2 tidak dapat bergabung dengan cluster. Pekerjaan akan tetap di
RUNNABLEnegara bagian karena tidak ada kapasitas yang terdaftar dengan cluster. -
Memilih antara aws-auth ConfigMap dan entri akses
Otentikasi entri akses adalah jalur yang direkomendasikan untuk lingkungan komputasi Amazon EKS baru AWS Batch , dan menawarkan keuntungan berikut:
-
Menghilangkan kebutuhan untuk mengedit secara manual
aws-authConfigMap untuk AWS Batch memberikan akses ke cluster. -
Menyediakan API-driven catatan yang dapat diaudit dari prinsipal yang memiliki akses ke cluster.
-
Diperlukan untuk cluster yang
authenticationModeadaAPI, yang tidak mendukungaws-authConfigMap.
Jika cluster Anda authenticationMode adaCONFIG_MAP, entri akses tidak tersedia dan di AWS Batch autentikasi melalui. aws-auth ConfigMap Untuk petunjuk, lihat Verifikasi bahwa aws-auth ConfigMap dikonfigurasi dengan benar.