

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
<a name="eks-access-entries"></a>

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 ](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html) 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`](#eks-access-entries-matrix) untuk detail.

## Nilai untuk `akses Entry.desiredState`
<a name="eks-access-entries-desired-state"></a>

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 `desiredState` ke `ENABLED` (lihat [Bagaimana AWS Batch mendamaikan DesiredState di seluruh `lingkungan komputasi`](#eks-access-entries-reconciliation) 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 `desiredState` ke `DISABLED` (lihat [Bagaimana AWS Batch mendamaikan DesiredState di seluruh `lingkungan komputasi`](#eks-access-entries-reconciliation) untuk detailnya). Akses ke cluster harus dikonfigurasi melalui `aws-auth` ConfigMap.

`INHERIT_FROM_CLUSTER`  
AWS Batch menyimpang ke entr `status` i akses cluster saat ini. Pada cluster Amazon EKS yang mode otentikasinya adalah `API` AWS Batch , membuat dan mengelola entri akses karena cluster tidak memiliki tempat `aws-auth` ConfigMap untuk kembali. Pada cluster yang mode otentikasinya adalah `CONFIG_MAP` atau`API_AND_CONFIG_MAP`, AWS Batch tidak menambahkan atau menghapus entri akses.

Lingkungan komputasi juga mengekspos bidang read-only dalam respons`accessEntry.status`. [ DescribeComputeEnvironments ](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeComputeEnvironments.html) `ACTIVE`berarti bahwa entri akses yang AWS Batch dikelola -untuk lingkungan komputasi ada di cluster dan diutamakan daripada. `aws-auth` ConfigMap `INACTIVE`berarti tidak ada AWS Batch entri akses yang dikelola. Ini bisa karena `desiredState``DISABLED`, karena lingkungan komputasi yang menargetkan cluster belum setuju`desiredState`, atau karena entri belum disediakan. Jika `accessEntry.status` ya`INACTIVE`, 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` is`ACTIVE`, lihat[Pengaturan entri akses Amazon EKS tidak lengkap](batch_eks_invalid_compute_environment.md#batch_eks_access_entry_incomplete).

**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`
<a name="eks-access-entries-matrix"></a>

Bagaimana AWS Batch berperilaku untuk tertentu `desiredState` tergantung pada mode otentikasi cluster. Tabel berikut berlaku untuk keduanya `CreateComputeEnvironment` dan`UpdateComputeEnvironment`.


<table>
<thead>
  <tr><th>Cluster <code>authenticationMode</code></th><th>Lingkungan komputasi <code>accessEntry.desiredState=ENABLED</code></th><th>Lingkungan komputasi <code>accessEntry.desiredState=DISABLED</code></th><th>Lingkungan komputasi <code>accessEntry.desiredState=INHERIT_FROM_CLUSTER</code></th></tr>
</thead>
<tbody>
  <tr><td><code>CONFIG_MAP</code></td><td colspan="3">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 <code>CreateComputeEnvironment</code> atau <code>UpdateComputeEnvironment</code> panggilan yang ditentukan<code>desiredState</code>.</td></tr>
  <tr><td><code>API_AND_CONFIG_MAP</code></td><td colspan="2">AWS Batch membandingkan nilai yang direkam di seluruh lingkungan komputasi yang berbagi cluster — lihat<a href="#eks-access-entries-reconciliation">Bagaimana AWS Batch mendamaikan DesiredState di seluruh `lingkungan komputasi`</a>.</td><td>Mode akses yang ada dipertahankan. AWS Batch tidak menambah atau menghapus entri akses.</td></tr>
  <tr><td><code>API</code></td><td>Entri akses dibuat dan dipelihara di cluster.</td><td>Permintaan ditolak. Cluster dalam mode ini tidak mendukung <code>aws-auth</code> ConfigMap, dan ConfigMap metode tidak dapat diaktifkan setelah pembuatan cluster, sehingga lingkungan komput <code>DISABLED</code> asi tidak memiliki cara untuk mengotentikasi.</td><td>Entri akses dibuat dan dipelihara di cluster. Ketika cluster <code>API</code> hanya -only, mewarisi setara dengan. <code>ENABLED</code></td></tr>
</tbody>
</table>


## Bagaimana AWS Batch mendamaikan DesiredState di seluruh `lingkungan komputasi`
<a name="eks-access-entries-reconciliation"></a>

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` ada`API_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 menentukan`desiredState`.

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.

`desiredState`Nilai yang direkam tidak semuanya cocok  
AWS Batch mempertahankan mode akses yang ada. Entri akses tidak ditambahkan atau dihapus. Ini termasuk campuran`ENABLED`,, dan `DISABLED``INHERIT_FROM_CLUSTER`, dan juga mencakup lingkungan komputasi apa pun yang tidak memiliki catatan`desiredState`.

**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
<a name="eks-access-entries-what-batch-creates"></a>

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, lihat[Konfigurasi cluster yang masih harus Anda berikan](#eks-access-entries-additional-configuration).

## Izin yang diperlukan
<a name="eks-access-entries-permissions"></a>

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
<a name="eks-access-entries-configure"></a>

Anda dapat mengonfigurasi entri akses pada lingkungan komputasi melalui `eksConfiguration.accessEntry` bidang [ UpdateComputeEnvironment ](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) API [ CreateComputeEnvironment ](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html) atau.

------
#### [ AWS CLI ]

**Aktifkan AWS Batch entri akses yang dikelola saat membuat lingkungan komputasi **

```
$ aws batch create-compute-environment \
    --compute-environment-name {{my-eks-ce}} \
    --type MANAGED \
    --eks-configuration 'eksClusterArn={{arn:aws:eks:us-east-1:123456789012:cluster/my-cluster}},kubernetesNamespace={{my-aws-batch-namespace}},accessEntry={desiredState=ENABLED}' \
    --compute-resources 'type=EC2,maxvCpus=128,subnets={{subnet-a123456b}},securityGroupIds={{sg-a12b3456}},instanceRole={{arn:aws:iam::123456789012:instance-profile/my-node-instance-profile}}'
```

**Mengaktifkan entr AWS Batch i akses yang dikelola pada lingkungan komputasi yang ada **

```
$ aws batch update-compute-environment \
    --compute-environment {{my-eks-ce}} \
    --eks-configuration 'accessEntry={desiredState=ENABLED}'
```

**Periksa statusnya **

```
$ aws batch describe-compute-environments \
    --compute-environments {{my-eks-ce}} \
    --query "computeEnvironments[0].eksConfiguration.accessEntry"
```

Responsnya mencakup `desiredState` yang Anda tentukan dan yang diamati`status`:

```
{
    "desiredState": "ENABLED",
    "status": "ACTIVE"
}
```

**catatan**  
AWS Batch mengembalikan `accessEntry.status` untuk semua lingkungan komputasi Amazon EKS, dan mengembalikan `desiredState` hanya jika Anda telah mengaturnya. Lingkungan komputasi di mana Anda tidak pernah menentukan pengem `accessEntry` balian `status` saja.

Untuk berhenti mengelola AWS Batch entri akses, setel `desiredState` ke sebagai `DISABLED` gantinya. Sebelum Anda melakukannya, review[Interaksi dengan `AuthenticationMode cluster`](#eks-access-entries-matrix): `DISABLED` ditolak pada cluster yang mode otentikasinya`API`, dan pada cluster yang mode otentikasinya adalah entr `API_AND_CONFIG_MAP` i akses dihapus hanya setelah setiap lingkungan AWS Batch komputasi yang menargetkan cluster diatur ke`DISABLED`.

------
#### [ API ]

Gunakan `eksConfiguration.accessEntry` objek dalam [ CreateComputeEnvironment ](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html) [ UpdateComputeEnvironment ](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) permintaan Anda.

**Buat lingkungan komputasi dengan entri akses yang AWS Batch dikelola **

Sertakan `accessEntry` dalam badan permintaan:

```
{
    "computeEnvironmentName": "{{my-eks-ce}}",
    "type": "MANAGED",
    "state": "ENABLED",
    "eksConfiguration": {
        "eksClusterArn": "{{arn:aws:eks:us-east-1:123456789012:cluster/my-cluster}}",
        "kubernetesNamespace": "{{my-aws-batch-namespace}}",
        "accessEntry": {
            "desiredState": "ENABLED"
        }
    },
    "computeResources": {
        "type": "EC2",
        "maxvCpus": 128,
        "subnets": ["{{subnet-a123456b}}"],
        "securityGroupIds": ["{{sg-a12b3456}}"],
        "instanceRole": "{{arn:aws:iam::123456789012:instance-profile/my-node-instance-profile}}"
    }
}
```

**Memperbarui entri akses pada lingkungan komputasi yang ada **

```
{
    "computeEnvironment": "{{my-eks-ce}}",
    "eksConfiguration": {
        "accessEntry": {
            "desiredState": "ENABLED"
        }
    }
}
```

Untuk informasi selengkapnya [`EksAccessEntry`](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksAccessEntry.html), lihat [ CreateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html),, dan [ UpdateComputeEnvironment ](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) di Refer *AWS Batch ensi API*.

------

## Konfigurasi cluster yang masih harus Anda berikan
<a name="eks-access-entries-additional-configuration"></a>

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.kubernetesNamespace` Buat 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 mengatur `desiredState=ENABLED` semua lingkungan komputasi yang menargetkan cluster, AWS Batch membuat entri akses dengan tingkat cluster`AWSBatchClusterPolicy`. Anda kemudian harus mengaitkan ruang nama yang dicakup untuk memberikan AWS Batch izin `AWSBatchNamespacePolicy` untuk membuat dan mengelola pod.

  Setelah entri akses mencapai`status=ACTIVE`, kaitkan kebijakan namespace menggunakan: AWS CLI

  ```
  $ aws eks associate-access-policy \
      --cluster-name {{my-cluster}} \
      --principal-arn {{arn: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-namespace}}
  ```

  Ganti {{my-aws-batch-namespace}} dengan nilai yang Anda tentukan`eksConfiguration.kubernetesNamespace`.
**penting**  
Tanpa asosiasi kebijakan ruang nama, pekerjaan akan tetap terjebak dalam status. `RUNNABLE` Kebijakan 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](getting-started-eks.md#getting-started-eks-step-1) 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 `VALID` sementara 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 `authenticationMode` adalah `CONFIG_MAP` ** — Anda harus menggunakan `aws-auth` ConfigMap. Entri akses tidak didukung pada cluster ini.
+ **Pada cluster yang `authenticationMode` adalah `API_AND_CONFIG_MAP` ** — Peran instance node dapat mengotentikasi menggunakan entri `aws-auth` ConfigMap atau akses. Jika peran instance sudah dipetakan di ConfigMap, node akan berhasil bergabung tanpa membuat entri akses untuk peran tersebut.
+ **Pada cluster yang `authenticationMode` adalah `API` ** — Anda harus membuat entri akses untuk peran instance node. Tidak `aws-auth` ConfigMap digunakan untuk otentikasi pada cluster ini.
Untuk membuat entri akses untuk peran instance node, gunakan AWS CLI:  

```
$ aws eks create-access-entry \
    --cluster-name {{my-cluster}} \
    --principal-arn {{arn:aws:iam::123456789012:role/my-node-instance-role}} \
    --type EC2_LINUX
```

```
$ aws eks associate-access-policy \
    --cluster-name {{my-cluster}} \
    --principal-arn {{arn:aws:iam::123456789012:role/my-node-instance-role}} \
    --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSWorkerNodePolicy \
    --access-scope type=cluster
```
Untuk informasi selengkapnya, lihat [ Membuat entr ](https://docs.aws.amazon.com/eks/latest/userguide/creating-access-entries.html) i akses di Panduan Pengguna * * Amazon EKS **.  
Tanpa akses cluster yang tepat untuk peran instance node, instans EC2 tidak dapat bergabung dengan cluster. Pekerjaan akan tetap di `RUNNABLE` negara bagian karena tidak ada kapasitas yang terdaftar dengan cluster.

## Memilih antara `aws-auth` ConfigMap dan entri akses
<a name="eks-access-entries-choosing"></a>

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-auth` ConfigMap 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 `authenticationMode` ada`API`, yang tidak mendukung `aws-auth` ConfigMap.

Jika cluster Anda `authenticationMode` ada`CONFIG_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](verify-configmap-config.md).