

 **Bantu tingkatkan halaman ini** 

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

Untuk berkontribusi pada panduan pengguna ini, pilih **Edit halaman ini pada GitHub** tautan yang terletak di panel kanan setiap halaman.

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

# Gunakan penyimpanan volume Kubernetes dengan Amazon EBS
<a name="ebs-csi"></a>

**catatan**  
 **Baru:** Amazon EKS Auto Mode mengotomatiskan tugas rutin untuk penyimpanan blok. Pelajari cara [Menerapkan contoh beban kerja stateful ke Mode Otomatis EKS](sample-storage-workload.md).

Driver [Amazon Elastic Block Store (Amazon EBS) Container Storage Interface (CSI) mengelola](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/) siklus hidup volume Amazon EBS sebagai penyimpanan untuk Volume Kubernetes yang Anda buat. [https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/](https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/)

## Pertimbangan-pertimbangan
<a name="ebs-csi-considerations"></a>
+ Anda tidak perlu menginstal pengontrol Amazon EBS CSI pada kluster Mode Otomatis EKS.
+ Anda tidak dapat memasang volume Amazon EBS ke Pod Fargate.
+ Anda dapat menjalankan pengontrol Amazon EBS CSI di node Fargate, tetapi node Amazon EBS CSI hanya dapat `DaemonSet` berjalan di instans Amazon EC2.
+ Volume Amazon EBS dan driver Amazon EBS CSI tidak kompatibel dengan Amazon EKS Hybrid Nodes.
+ Support akan disediakan untuk versi add-on terbaru dan satu versi sebelumnya. Perbaikan untuk bug atau kerentanan yang ditemukan di versi terbaru akan di-backport ke rilis sebelumnya sebagai versi minor baru.
+ Mode Otomatis EKS membutuhkan kelas penyimpanan untuk digunakan `ebs.csi.eks.amazonaws.com` sebagai penyedia. Amazon EBS CSI Driver (`ebs.csi.aws.com`) standar mengelola volumenya sendiri secara terpisah. Untuk menggunakan volume yang ada dengan Mode Otomatis EKS, migrasikan volume menggunakan snapshot volume ke kelas penyimpanan yang menggunakan penyedia Mode Otomatis.

**penting**  
Untuk menggunakan fungsionalitas snapshot dari driver Amazon EBS CSI, Anda harus menginstal pengontrol snapshot CSI terlebih dahulu. Untuk informasi selengkapnya, lihat [Aktifkan fungsionalitas snapshot untuk volume CSI](csi-snapshot-controller.md).

## Prasyarat
<a name="ebs-csi-prereqs"></a>
+ Sebuah klaster yang sudah ada. Untuk melihat versi platform yang diperlukan, jalankan perintah berikut.

  ```
  aws eks describe-addon-versions --addon-name aws-ebs-csi-driver
  ```
+ Driver EBS CSI membutuhkan AWS Izin IAM.
  +  AWS menyarankan menggunakan EKS Pod Identities. Untuk informasi selengkapnya, lihat [Ikhtisar pengaturan EKS Pod Identities](pod-identities.md#pod-id-setup-overview).
  + Untuk informasi tentang Peran IAM untuk Akun Layanan, lihat[Buat penyedia IAM OIDC untuk klaster Anda](enable-iam-roles-for-service-accounts.md).

## Langkah 1: Buat peran IAM
<a name="csi-iam-role"></a>

Plugin Amazon EBS CSI memerlukan izin IAM untuk melakukan panggilan atas nama Anda. AWS APIs Jika Anda tidak melakukan langkah-langkah ini, mencoba menginstal add-on dan menjalankan `kubectl describe pvc` akan muncul `failed to provision volume with StorageClass` bersama dengan `could not create volume in EC2: UnauthorizedOperation` kesalahan. Untuk informasi selengkapnya, lihat [Mengatur izin pengemudi](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/docs/install.md#set-up-driver-permissions) di GitHub.

**catatan**  
Pod akan memiliki akses ke izin yang ditetapkan ke peran IAM kecuali Anda memblokir akses ke IMDS. Untuk informasi selengkapnya, lihat [Amankan kluster Amazon EKS dengan praktik terbaik](security-best-practices.md).

Prosedur berikut menunjukkan kepada Anda cara membuat peran IAM dan melampirkan kebijakan AWS terkelola padanya. Untuk menerapkan prosedur ini, Anda dapat menggunakan salah satu alat ini:
+  [`eksctl`](#eksctl_store_app_data) 
+  [Konsol Manajemen AWS](#console_store_app_data) 
+  [AWS CLI](#awscli_store_app_data) 

**catatan**  
Anda dapat membuat kebijakan yang dikelola sendiri dengan izin tercakup lebih lanjut. Tinjau [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEBSCSIDriverPolicyV2.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEBSCSIDriverPolicyV2.html)dan buat Kebijakan IAM kustom dengan izin yang dikurangi. Jika bermigrasi dari`AmazonEBSCSIDriverPolicy`, silakan lihat Migrasi kebijakan [Driver EBS CSI](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/issues/2918).

**catatan**  
Langkah-langkah spesifik dalam prosedur ini ditulis untuk menggunakan driver sebagai add-on Amazon EKS. Langkah-langkah yang berbeda diperlukan untuk menggunakan driver sebagai add-on yang dikelola sendiri. Untuk informasi selengkapnya, lihat [Mengatur izin driver](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/docs/install.md#set-up-driver-permissions) pada GitHub.

### `eksctl`
<a name="eksctl_store_app_data"></a>

1. Buat peran IAM dan lampirkan kebijakan. AWS mempertahankan kebijakan AWS terkelola atau Anda dapat membuat kebijakan kustom Anda sendiri. Anda dapat membuat peran IAM dan melampirkan kebijakan AWS terkelola dengan perintah berikut. Ganti *my-cluster* dengan nama klaster Anda. Perintah menyebarkan AWS CloudFormation tumpukan yang membuat peran IAM dan melampirkan kebijakan IAM padanya.

   ```
   eksctl create iamserviceaccount \
           --name ebs-csi-controller-sa \
           --namespace kube-system \
           --cluster my-cluster \
           --role-name AmazonEKS_EBS_CSI_DriverRole \
           --role-only \
           --attach-policy-arn arn:aws: iam::aws:policy/service-role/AmazonEBSCSIDriverPolicyV2 \
           --approve
   ```

1. Anda dapat melewati langkah ini jika Anda tidak menggunakan [kunci KMS](https://aws.amazon.com/kms/) khusus. Jika Anda menggunakannya untuk enkripsi pada volume Amazon EBS Anda, sesuaikan peran IAM sesuai kebutuhan. Sebagai contoh, lakukan hal berikut:

   1. Salin dan tempel kode berikut ke `kms-key-for-encryption-on-ebs.json` file baru. Ganti *custom-key-arn* dengan [ARN kunci KMS](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html#awskeymanagementservice-key) kustom.

      ```
      {
            "Version":"2012-10-17",		 	 	 
            "Statement": [
              {
                "Effect": "Allow",
                "Action": [
                  "kms:CreateGrant",
                  "kms:ListGrants",
                  "kms:RevokeGrant"
                ],
                "Resource": ["arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"],
                "Condition": {
                  "Bool": {
                    "kms:GrantIsForAWSResource": "true"
                  }
                }
              },
              {
                "Effect": "Allow",
                "Action": [
                  "kms:Encrypt",
                  "kms:Decrypt",
                  "kms:ReEncrypt*",
                  "kms:GenerateDataKey*",
                  "kms:DescribeKey"
                ],
                "Resource": ["arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"]
              }
            ]
          }
      ```

   1. Buat kebijakan. Anda dapat mengubah *KMS\$1Key\$1For\$1Encryption\$1On\$1EBS\$1Policy* ke nama yang berbeda. Namun, jika Anda melakukannya, pastikan untuk mengubahnya di langkah selanjutnya juga.

      ```
      aws iam create-policy \
            --policy-name KMS_Key_For_Encryption_On_EBS_Policy \
            --policy-document file://kms-key-for-encryption-on-ebs.json
      ```

   1. Lampirkan kebijakan IAM ke peran dengan perintah berikut. Ganti *111122223333* dengan ID akun Anda.

      ```
      aws iam attach-role-policy \
            --policy-arn arn:aws: iam::111122223333:policy/KMS_Key_For_Encryption_On_EBS_Policy \
            --role-name AmazonEKS_EBS_CSI_DriverRole
      ```

### Konsol Manajemen AWS
<a name="console_store_app_data"></a>

1. Buka konsol IAM di https://console.aws.amazon.com/iam/.

1. Di panel navigasi sebelah kiri, pilih **Peran**.

1. Pada halaman **Peran**, pilih **Buat peran**.

1. Pada halaman **Pilih entitas tepercaya**, lakukan hal berikut:

   1. Di bagian **Jenis entitas tepercaya**, pilih **Identitas web**.

   1. Untuk **penyedia Identity**, pilih **URL penyedia OpenID Connect** untuk klaster Anda (seperti yang ditunjukkan di bawah **Ikhtisar** di Amazon EKS).

   1. Untuk **Audiens**, pilih `sts.amazonaws.com`.

   1. Pilih **Berikutnya**.

1. Pada halaman **Tambahkan izin**, lakukan hal berikut:

   1. Di dalam kotak **Filter kebijakan**, masukkan `AmazonEBSCSIDriverPolicyV2`.

   1. Pilih kotak centang di sebelah kiri yang `AmazonEBSCSIDriverPolicyV2` dikembalikan dalam pencarian.

   1. Pilih **Berikutnya**.

1. Pada halaman **Nama, tinjau, dan buat**, lakukan hal berikut:

   1. Untuk **nama Peran**, masukkan nama unik untuk peran Anda, seperti*AmazonEKS\$1EBS\$1CSI\$1DriverRole*.

   1. Di bawah **Tambahkan tag (Opsional)**, tambahkan metadata ke peran dengan melampirkan tag sebagai pasangan nilai kunci. Untuk informasi selengkapnya tentang penggunaan tanda di IAM, lihat [Menandai sumber daya IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) di *Panduan Pengguna IAM*.

   1. Pilih **Buat peran**.

1. Setelah peran dibuat, pilih peran di konsol untuk dibuka, dan kemudian diedit.

1. Pilih tab **Trust relationship**, lalu pilih **Edit trust policy**.

1. Temukan garis yang terlihat mirip dengan baris berikut:

   ```
   "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com"
   ```

   Tambahkan koma ke akhir baris sebelumnya, lalu tambahkan baris berikut setelah baris sebelumnya. Ganti *region-code* dengan AWS Wilayah tempat cluster Anda berada. Ganti *EXAMPLED539D4633E53DE1B71EXAMPLE* dengan ID penyedia OIDC cluster Anda.

   ```
   "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:ebs-csi-controller-sa"
   ```

1. Pilih **Perbarui kebijakan** untuk menyelesaikan.

1. Jika Anda menggunakan [kunci KMS](https://aws.amazon.com/kms/) khusus untuk enkripsi pada volume Amazon EBS Anda, sesuaikan peran IAM sesuai kebutuhan. Sebagai contoh, lakukan hal berikut:

   1. Di panel navigasi di sebelah kiri, pilih **Kebijakan**.

   1. Pada halaman **Kebijakan**, pilih **Buat Kebijakan**.

   1. Di halaman **Buat kebijakan**, pilih tab **JSON**.

   1. Salin dan tempel kode berikut ke editor, ganti *custom-key-arn* dengan [ARN kunci KMS](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html#awskeymanagementservice-key) khusus.

      ```
      {
            "Version":"2012-10-17",		 	 	 
            "Statement": [
              {
                "Effect": "Allow",
                "Action": [
                  "kms:CreateGrant",
                  "kms:ListGrants",
                  "kms:RevokeGrant"
                ],
                "Resource": ["arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"],
                "Condition": {
                  "Bool": {
                    "kms:GrantIsForAWSResource": "true"
                  }
                }
              },
              {
                "Effect": "Allow",
                "Action": [
                  "kms:Encrypt",
                  "kms:Decrypt",
                  "kms:ReEncrypt*",
                  "kms:GenerateDataKey*",
                  "kms:DescribeKey"
                ],
                "Resource": ["arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"]
              }
            ]
          }
      ```

   1. Pilih **Berikutnya: Tanda**.

   1. Pada halaman **Tambahkan tag (Opsional)**, pilih **Berikutnya: Ulasan**.

   1. Untuk **Nama**, masukkan nama unik untuk kebijakan Anda (misalnya,*KMS\$1Key\$1For\$1Encryption\$1On\$1EBS\$1Policy*).

   1. Pilih **Buat kebijakan**.

   1. Di panel navigasi sebelah kiri, pilih **Peran**.

   1. Pilih ***AmazonEKS\$1EBS\$1CSI\$1DriverRole***di konsol untuk membukanya untuk diedit.

   1. **Dari daftar tarik-turun **Tambahkan izin**, pilih Lampirkan kebijakan.**

   1. Di dalam kotak **Filter kebijakan**, masukkan *KMS\$1Key\$1For\$1Encryption\$1On\$1EBS\$1Policy*.

   1. Pilih kotak centang di sebelah kiri *KMS\$1Key\$1For\$1Encryption\$1On\$1EBS\$1Policy* yang dikembalikan dalam pencarian.

   1. Pilih **Lampirkan kebijakan**.

### AWS CLI
<a name="awscli_store_app_data"></a>

1. Lihat URL penyedia OIDC klaster Anda. Ganti *my-cluster* dengan nama klaster Anda. Jika output dari perintah adalah `None`, tinjau **Prasyarat**.

   ```
   aws eks describe-cluster --name my-cluster --query "cluster.identity.oidc.issuer" --output text
   ```

   Contoh output adalah sebagai berikut.

   ```
   https://oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
   ```

1. Buat peran IAM, berikan tindakan. `AssumeRoleWithWebIdentity`

   1. Salin konten berikut ke file yang diberi nama`aws-ebs-csi-driver-trust-policy.json`. Ganti *111122223333* dengan ID akun Anda. Ganti *EXAMPLED539D4633E53DE1B71EXAMPLE* dan *region-code* dengan nilai yang dikembalikan pada langkah sebelumnya.

      ```
      {
            "Version":"2012-10-17",		 	 	 
            "Statement": [
              {
                "Effect": "Allow",
                "Principal": {
                  "Federated": "arn:aws:iam::111122223333:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE"
                },
                "Action": "sts:AssumeRoleWithWebIdentity",
                "Condition": {
                  "StringEquals": {
                    "oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com",
                    "oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:ebs-csi-controller-sa"
                  }
                }
              }
            ]
          }
      ```

   1. Buat peran. Anda dapat mengubah *AmazonEKS\$1EBS\$1CSI\$1DriverRole* ke nama yang berbeda. Jika Anda mengubahnya, pastikan untuk mengubahnya di langkah selanjutnya.

      ```
      aws iam create-role \
            --role-name AmazonEKS_EBS_CSI_DriverRole \
            --assume-role-policy-document file://"aws-ebs-csi-driver-trust-policy.json"
      ```

1. Lampirkan kebijakan. AWS mempertahankan kebijakan AWS terkelola atau Anda dapat membuat kebijakan kustom Anda sendiri. Lampirkan kebijakan AWS terkelola ke peran dengan perintah berikut.

   ```
   aws iam attach-role-policy \
         --policy-arn arn:aws: iam::aws:policy/service-role/AmazonEBSCSIDriverPolicyV2 \
         --role-name AmazonEKS_EBS_CSI_DriverRole
   ```

1. Jika Anda menggunakan [kunci KMS](https://aws.amazon.com/kms/) khusus untuk enkripsi pada volume Amazon EBS Anda, sesuaikan peran IAM sesuai kebutuhan. Sebagai contoh, lakukan hal berikut:

   1. Salin dan tempel kode berikut ke `kms-key-for-encryption-on-ebs.json` file baru. Ganti *custom-key-arn* dengan [ARN kunci KMS](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html#awskeymanagementservice-key) kustom.

      ```
      {
            "Version":"2012-10-17",		 	 	 
            "Statement": [
              {
                "Effect": "Allow",
                "Action": [
                  "kms:CreateGrant",
                  "kms:ListGrants",
                  "kms:RevokeGrant"
                ],
                "Resource": ["arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"],
                "Condition": {
                  "Bool": {
                    "kms:GrantIsForAWSResource": "true"
                  }
                }
              },
              {
                "Effect": "Allow",
                "Action": [
                  "kms:Encrypt",
                  "kms:Decrypt",
                  "kms:ReEncrypt*",
                  "kms:GenerateDataKey*",
                  "kms:DescribeKey"
                ],
                "Resource": ["arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"]
              }
            ]
          }
      ```

   1. Buat kebijakan. Anda dapat mengubah *KMS\$1Key\$1For\$1Encryption\$1On\$1EBS\$1Policy* ke nama yang berbeda. Namun, jika Anda melakukannya, pastikan untuk mengubahnya di langkah selanjutnya juga.

      ```
      aws iam create-policy \
            --policy-name KMS_Key_For_Encryption_On_EBS_Policy \
            --policy-document file://kms-key-for-encryption-on-ebs.json
      ```

   1. Lampirkan kebijakan IAM ke peran dengan perintah berikut. Ganti *111122223333* dengan ID akun Anda.

      ```
      aws iam attach-role-policy \
            --policy-arn arn:aws: iam::111122223333:policy/KMS_Key_For_Encryption_On_EBS_Policy \
            --role-name AmazonEKS_EBS_CSI_DriverRole
      ```

Sekarang setelah Anda membuat peran IAM driver Amazon EBS CSI, Anda dapat melanjutkan ke bagian berikutnya. Saat Anda menerapkan add-on dengan peran IAM ini, ia membuat dan dikonfigurasi untuk menggunakan akun layanan yang diberi nama. `ebs-csi-controller-sa` Akun layanan terikat pada Kubernetes yang diberi izin Kubernetes `clusterrole` yang diperlukan.

## Langkah 2: Dapatkan driver Amazon EBS CSI
<a name="managing-ebs-csi"></a>

Kami menyarankan Anda menginstal driver Amazon EBS CSI melalui add-on Amazon EKS untuk meningkatkan keamanan dan mengurangi jumlah pekerjaan. Untuk menambahkan add-on Amazon EKS ke cluster Anda, lihat[Buat add-on Amazon EKS](creating-an-add-on.md). Untuk informasi selengkapnya tentang add-on, lihat[Add-on Amazon EKS](eks-add-ons.md).

**penting**  
Sebelum menambahkan driver Amazon EBS sebagai add-on Amazon EKS, konfirmasikan bahwa Anda tidak memiliki versi driver yang dikelola sendiri yang diinstal pada cluster Anda. Jika demikian, lihat [Menghapus instalasi driver Amazon EBS CSI yang dikelola sendiri](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/docs/install.md#uninstalling-the-ebs-csi-driver). GitHub

**catatan**  
Secara default, peran RBAC yang digunakan oleh EBS CSI memiliki izin untuk mengubah node untuk mendukung fitur penghapusan taint-nya. Karena keterbatasan Kubernetes RBAC, ini juga memungkinkannya untuk memutasi Node lain di cluster. Bagan Helm memiliki parameter (`node.serviceAccount.disableMutation`) yang menonaktifkan izin Node RBAC yang bermutasi untuk akun layanan. ebs-csi-node Saat diaktifkan, fitur driver seperti penghapusan taint tidak akan berfungsi.

[Atau, jika Anda ingin instalasi yang dikelola sendiri dari driver Amazon EBS CSI, lihat Instalasi aktif.](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/docs/install.md) GitHub

## Langkah 3: Menyebarkan aplikasi sampel
<a name="ebs-sample-app"></a>

Anda dapat menerapkan berbagai contoh aplikasi dan memodifikasinya sesuai kebutuhan. Untuk informasi selengkapnya, lihat Contoh [Kubernetes di.](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/tree/master/examples/kubernetes) GitHub