

 **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.

# Konfigurasikan Pod untuk menggunakan akun layanan Kubernetes
<a name="pod-configuration"></a>

Jika sebuah Pod perlu mengakses AWS layanan, maka Anda harus mengonfigurasinya untuk menggunakan akun layanan Kubernetes. Akun layanan harus dikaitkan dengan peran AWS Identity and Access Management (IAM) and Access Management (IAM) yang memiliki izin untuk mengakses layanan. AWS 
+ Sebuah klaster yang sudah ada. Jika Anda tidak memilikinya, Anda dapat membuatnya menggunakan salah satu panduan di[Memulai dengan Amazon EKS](getting-started.md).
+ Penyedia IAM OpenID Connect (OIDC) yang sudah ada untuk klaster Anda. Untuk mengetahui apakah Anda sudah memilikinya atau cara membuatnya, lihat[Buat penyedia IAM OIDC untuk klaster Anda](enable-iam-roles-for-service-accounts.md).
+ Akun layanan Kubernetes yang sudah ada yang terkait dengan peran IAM. Akun layanan harus dianotasi dengan Nama Sumber Daya Amazon (ARN) dari peran IAM. Peran tersebut harus memiliki kebijakan IAM terkait yang berisi izin yang Anda inginkan untuk Pod Anda untuk menggunakan AWS layanan. Untuk informasi selengkapnya tentang cara membuat akun dan peran layanan, dan mengonfigurasinya, lihat[Tetapkan peran IAM ke akun layanan Kubernetes](associate-service-account-role.md).
+ Versi `2.12.3` atau yang lebih baru atau versi `1.27.160` atau yang lebih baru dari AWS Command Line Interface (AWS CLI) diinstal dan dikonfigurasi pada perangkat Anda atau. AWS CloudShell Untuk memeriksa versi Anda saat ini, gunakan`aws --version | cut -d / -f2 | cut -d ' ' -f1`. Package manager seperti`yum`,`apt-get`, atau Homebrew untuk macOS seringkali merupakan beberapa versi di belakang versi terbaru CLI. AWS Untuk menginstal versi terbaru, lihat [Menginstal](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) dan [Konfigurasi cepat dengan aws configure](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config) di *Panduan Pengguna Antarmuka Baris AWS Perintah*. Versi AWS CLI yang diinstal AWS CloudShell mungkin juga beberapa versi di belakang versi terbaru. Untuk memperbaruinya, lihat [Menginstal AWS CLI ke direktori home Anda](https://docs.aws.amazon.com/cloudshell/latest/userguide/vm-specs.html#install-cli-software) di * AWS CloudShell Panduan Pengguna*.
+ Alat baris `kubectl` perintah diinstal pada perangkat Anda atau AWS CloudShell. Versinya bisa sama dengan atau hingga satu versi minor lebih awal atau lebih lambat dari versi Kubernetes dari klaster Anda. Misalnya, jika versi cluster Anda`1.29`, Anda dapat menggunakan `kubectl` versi`1.28`,`1.29`, atau `1.30` dengan itu. Untuk menginstal atau memutakhirkan `kubectl`, lihat [Mengatur `kubectl` dan `eksctl`](install-kubectl.md).
+ `kubectl``config`File yang ada yang berisi konfigurasi cluster Anda. Untuk membuat `kubectl` `config` file, lihat[Connect kubectl ke kluster EKS dengan membuat file kubeconfig](create-kubeconfig.md).

  1. Gunakan perintah berikut untuk membuat manifes deployment yang dapat digunakan untuk meng-deploy Pod untuk mengonfirmasi konfigurasi. Ganti nilai contoh dengan nilai Anda sendiri.

     ```
     cat >my-deployment.yaml <<EOF
     apiVersion: apps/v1
     kind: Deployment
     metadata:
       name: my-app
     spec:
       selector:
         matchLabels:
           app: my-app
       template:
         metadata:
           labels:
             app: my-app
         spec:
           serviceAccountName: my-service-account
           containers:
           - name: my-app
             image: public.ecr.aws/nginx/nginx:X.XX
     EOF
     ```

  1. Terapkan manifes ke cluster Anda.

     ```
     kubectl apply -f my-deployment.yaml
     ```

  1. Konfirmasikan bahwa variabel lingkungan yang diperlukan ada untuk Pod Anda.

     1. Lihat Pod yang di-deploy dengan deployment pada langkah sebelumnya.

        ```
        kubectl get pods | grep my-app
        ```

        Contoh output adalah sebagai berikut.

        ```
        my-app-6f4dfff6cb-76cv9   1/1     Running   0          3m28s
        ```

     1. Lihat ARN dari peran IAM yang digunakan Pod.

        ```
        kubectl describe pod my-app-6f4dfff6cb-76cv9 | grep AWS_ROLE_ARN:
        ```

        Contoh output adalah sebagai berikut.

        ```
        AWS_ROLE_ARN: arn:aws: iam::111122223333:role/my-role
        ```

        Peran ARN harus cocok dengan ARN peran yang Anda anotasi dengan akun layanan yang ada. Untuk selengkapnya tentang membuat anotasi akun layanan, lihat. [Tetapkan peran IAM ke akun layanan Kubernetes](associate-service-account-role.md)

     1. Konfirmasikan bahwa Pod memiliki mount file token identitas web.

        ```
        kubectl describe pod my-app-6f4dfff6cb-76cv9 | grep AWS_WEB_IDENTITY_TOKEN_FILE:
        ```

        Contoh output adalah sebagai berikut.

        ```
        AWS_WEB_IDENTITY_TOKEN_FILE:  /var/run/secrets/eks.amazonaws.com/serviceaccount/token
        ```

        `kubelet`Meminta dan menyimpan token atas nama Pod. Secara default, token akan `kubelet` menyegarkan jika token lebih tua dari 80 persen dari total waktu untuk hidup atau lebih dari 24 jam. Anda dapat mengubah durasi kedaluwarsa untuk setiap akun selain akun layanan default dengan menggunakan pengaturan dalam spesifikasi Pod Anda. Untuk informasi selengkapnya, lihat [Service Account Token Volume Projection](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#serviceaccount-token-volume-projection) dalam dokumentasi Kubernetes.

        [Amazon EKS Pod Identity Webhook](https://github.com/aws/amazon-eks-pod-identity-webhook#amazon-eks-pod-identity-webhook) di cluster mengawasi Pod yang menggunakan akun layanan dengan anotasi berikut:

        ```
        eks.amazonaws.com/role-arn: arn:aws: iam::111122223333:role/my-role
        ```

        Webhook menerapkan variabel lingkungan sebelumnya ke Pod tersebut. Cluster Anda tidak perlu menggunakan webhook untuk mengonfigurasi variabel lingkungan dan pemasangan file token. Anda dapat mengonfigurasi Pod secara manual untuk memiliki variabel lingkungan ini. [Versi AWS SDK yang didukung](iam-roles-for-service-accounts-minimum-sdk.md) mencari variabel lingkungan ini terlebih dahulu di penyedia rantai kredenal. Kredensial peran digunakan untuk Pod yang memenuhi kriteria ini.

  1. Konfirmasikan bahwa Pod Anda dapat berinteraksi dengan AWS layanan menggunakan izin yang Anda tetapkan dalam kebijakan IAM yang dilampirkan pada peran Anda.
**catatan**  
Ketika sebuah Pod menggunakan AWS kredensial dari peran IAM yang terkait dengan akun layanan, AWS CLI atau lainnya SDKs dalam kontainer untuk Pod tersebut menggunakan kredensial yang disediakan oleh peran tersebut. Jika Anda tidak membatasi akses ke kredensial yang diberikan ke [peran IAM node Amazon EKS](create-node-role.md), Pod masih memiliki akses ke kredensial-kredensialnya. Untuk informasi selengkapnya, lihat [Membatasi akses ke profil instance yang ditetapkan ke node pekerja](https://aws.github.io/aws-eks-best-practices/security/docs/iam/#restrict-access-to-the-instance-profile-assigned-to-the-worker-node).

     Jika Pod Anda tidak dapat berinteraksi dengan layanan seperti yang Anda harapkan, selesaikan langkah-langkah berikut untuk mengonfirmasi bahwa semuanya telah dikonfigurasi dengan benar.

     1. Konfirmasikan bahwa Pod Anda menggunakan versi AWS SDK yang mendukung asumsi peran IAM melalui file token identitas web OpenID Connect. Untuk informasi selengkapnya, lihat [Gunakan IRSA dengan SDK AWS](iam-roles-for-service-accounts-minimum-sdk.md).

     1. Konfirmasikan bahwa penyebaran menggunakan akun layanan.

        ```
        kubectl describe deployment my-app | grep "Service Account"
        ```

        Contoh output adalah sebagai berikut.

        ```
        Service Account:  my-service-account
        ```

     1. Jika Pod Anda masih tidak dapat mengakses layanan, tinjau [langkah-langkah](associate-service-account-role.md#irsa-confirm-role-configuration) yang dijelaskan dalam [Menetapkan peran IAM ke akun layanan Kubernetes untuk mengonfirmasi bahwa akun peran dan layanan](associate-service-account-role.md) Anda telah dikonfigurasi dengan benar.