

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

# Akses AWS Sumber Daya menggunakan Peran IAM Target Identitas EKS Pod
<a name="pod-id-assign-target-role"></a>

Saat menjalankan aplikasi di Amazon Elastic Kubernetes Service (Amazon EKS), Anda mungkin perlu mengakses sumber daya yang ada di AWS akun yang berbeda. AWS Panduan ini menunjukkan kepada Anda cara mengatur akses lintas akun menggunakan EKS Pod Identity, yang memungkinkan pod Kubernetes Anda mengakses AWS sumber daya lain menggunakan peran target.

## Prasyarat
<a name="_prerequisites"></a>

Sebelum Anda mulai, pastikan Anda telah menyelesaikan langkah-langkah berikut:
+  [Siapkan Agen Identitas Amazon EKS Pod](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-agent-setup.html) 
+  [Buat peran Identitas Pod EKS](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-role.html) 

## Cara Kerjanya
<a name="_how_it_works"></a>

Pod Identity memungkinkan aplikasi di klaster EKS Anda untuk mengakses AWS sumber daya di seluruh akun melalui proses yang disebut role chaining.

Saat membuat asosiasi Pod Identity, Anda dapat memberikan dua peran IAM: peran [Identitas Pod EKS](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-role.html) di akun yang sama dengan cluster EKS Anda dan Peran IAM Target dari akun yang berisi AWS sumber daya yang ingin Anda akses, (seperti bucket S3 atau Database RDS). [Peran EKS Pod Identity](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-role.html) harus ada di akun kluster EKS Anda karena PassRole persyaratan [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_iam-passrole-service.html), sedangkan Target IAM Role dapat berada di akun apa pun AWS . PassRole memungkinkan AWS entitas untuk mendelegasikan asumsi peran ke layanan lain. EKS Pod Identity digunakan PassRole untuk menghubungkan peran ke akun layanan Kubernetes, yang mengharuskan peran dan identitas yang melewatinya berada di AWS akun yang sama dengan cluster EKS. Ketika pod aplikasi Anda perlu mengakses AWS sumber daya, ia meminta kredensil dari Pod Identity. Pod Identity kemudian secara otomatis melakukan dua asumsi peran secara berurutan: pertama dengan asumsi peran [EKS Pod Identity, kemudian menggunakan kredensial-kredensialnya untuk mengasumsikan Target IAM Role](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-role.html). Proses ini memberi pod Anda kredensi sementara yang memiliki izin yang ditentukan dalam peran target, memungkinkan akses aman ke sumber daya di akun lain. AWS 

## Pertimbangan caching
<a name="_caching_considerations"></a>

Karena mekanisme caching, pembaruan peran IAM dalam asosiasi Identitas Pod yang ada mungkin tidak langsung berlaku di pod yang berjalan di klaster EKS Anda. Agen Identitas Pod menyimpan kredensial-kredensial IAM berdasarkan konfigurasi asosiasi pada saat kredensialnya diambil. Jika asosiasi hanya menyertakan [peran Identitas Pod EKS](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-role.html) dan tidak ada Peran IAM Target, kredenal yang di-cache akan bertahan selama 6 jam. Jika asosiasi tersebut mencakup [peran EKS Pod Identity](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-role.html) ARN dan Target IAM Role, kredenal cache akan berlangsung selama 59 menit. Memodifikasi asosiasi yang ada, seperti memperbarui [peran EKS Pod Identity](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-role.html) ARN atau menambahkan Peran IAM Target, tidak mengatur ulang cache yang ada. Akibatnya, agen tidak akan mengenali pembaruan sampai kredenial yang di-cache disegarkan. Untuk menerapkan perubahan lebih cepat, Anda dapat membuat ulang pod yang ada; jika tidak, Anda harus menunggu cache kedaluwarsa.

## Langkah 1: Buat dan kaitkan Peran IAM Target
<a name="_step_1_create_and_associate_a_target_iam_role"></a>

Pada langkah ini, Anda akan membangun rantai kepercayaan yang aman dengan membuat dan mengonfigurasi Peran IAM Target. Untuk demonstrasi, kami akan membuat Peran IAM Target baru untuk membangun rantai kepercayaan antara dua AWS akun: peran [Identitas Pod EKS](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-role.html) (misalnya,`eks-pod-identity-primary-role`) di AWS akun kluster EKS mendapatkan izin untuk mengambil Peran IAM Target (misalnya`eks-pod-identity-aws-resources`) di akun target Anda, memungkinkan akses ke sumber daya seperti bucket AWS Amazon S3.

### Buat Peran IAM Target
<a name="_create_the_target_iam_role"></a>

1. Buka [Amazon IAM console (Konsol Amazon IAM)](https://console.aws.amazon.com/iam/home).

1. Di bilah navigasi atas, verifikasi bahwa Anda masuk ke akun yang berisi AWS sumber daya (seperti bucket S3 atau tabel DynamoDB) untuk Peran IAM Target Anda.

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

1. Pilih tombol **Buat peran**, lalu ** AWS akun** di bawah “Jenis entitas tepercaya.”

1. Pilih ** AWS Akun lain**, masukkan nomor AWS akun Anda (akun tempat [peran Identitas EKS Pod](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-role.html) Anda ada), lalu pilih **Berikutnya**.

1. **Tambahkan kebijakan izin yang ingin Anda kaitkan ke peran (misalnya, AmazonS3FullAccess), lalu pilih Berikutnya.**

1. Masukkan nama peran, seperti`MyCustomIAMTargetRole`, lalu pilih **Buat peran**.

### Perbarui kebijakan kepercayaan Peran IAM Target
<a name="_update_the_target_iam_role_trust_policy"></a>

1. Setelah membuat peran, Anda akan dikembalikan ke daftar **Peran**. Temukan dan pilih peran baru yang Anda buat di langkah sebelumnya (mis.,`MyCustomIAMTargetRole`).

1. Pilih tab **Trust relationship**.

1. Klik **Edit kebijakan kepercayaan** di sisi kanan.

1. Di editor kebijakan, ganti JSON default dengan kebijakan kepercayaan Anda. Ganti nilai placeholder untuk nama peran dan `111122223333` ARN peran IAM dengan ID AWS akun yang menghosting kluster EKS Anda. Anda juga dapat menggunakan PrincipalTags kebijakan kepercayaan peran secara opsional untuk mengotorisasi hanya akun layanan tertentu dari klaster dan namespace tertentu untuk mengambil peran target Anda. Contoh:

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:root"
      },
      "Action": [
        "sts:AssumeRole",
        "sts:TagSession"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/eks-cluster-arn": "arn:aws:eks:us-east-1:111122223333:cluster/example-cluster",
          "aws:RequestTag/kubernetes-namespace": "ExampleNameSpace",
          "aws:RequestTag/kubernetes-service-account": "ExampleServiceAccountName"
        },
        "ArnEquals": {
          "aws:PrincipalARN": "arn:aws:iam::111122223333:role/eks-pod-identity-primary-role"
        }
      }
    }
  ]
}
```

Kebijakan kebijakan di atas memungkinkan peran `eks-pod-identeity-primary-role` dari AWS akun 111122223333 dengan Tag Sesi [Identitas Pod EKS](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-abac.html) yang relevan mengambil peran ini.

Jika Anda [Menonaktifkan Tag Sesi](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-abac.html#pod-id-abac-tags) dalam Identitas Pod EKS Anda, EKS Pod Identity juga menyetel informasi tentang cluster, namespace, dan akun layanan pod saat mengasumsikan peran target. `sts:ExternalId`

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:root"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "sts:ExternalId": "region/111122223333/cluster-name/namespace/service-account-name"
        },
        "ArnEquals": {
          "aws:PrincipalARN": "arn:aws:iam::111122223333:role/eks-pod-identity-primary-role"
        }
      }
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:root"
      },
      "Action": "sts:TagSession"
    }
  ]
}
```

Kebijakan di atas membantu memastikan bahwa hanya klaster, namespace, dan akun layanan yang diharapkan yang dapat mengambil peran target.

### Memperbarui kebijakan izin untuk peran EKS Pod Identity
<a name="_update_the_permission_policy_for_eks_pod_identity_role"></a>

Pada langkah ini, Anda akan memperbarui kebijakan izin [peran Identitas Pod EKS](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-role.html) yang terkait dengan klaster Amazon EKS Anda dengan menambahkan ARN Peran IAM Target sebagai sumber daya.

1. Buka [konsol Amazon EKS](https://console.aws.amazon.com/eks/home#/clusters).

1. Di panel navigasi kiri, pilih **Clusters**, lalu pilih nama kluster EKS Anda.

1. Pilih tab **Access**.

1. Di bawah **asosiasi Pod Identity**, pilih [peran Identitas Pod EKS](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-role.html) Anda.

1. Pilih **Izin**, **Tambahkan izin**, lalu **Buat kebijakan sebaris**.

1. Pilih **JSON** di sisi kanan.

1. Di editor kebijakan, ganti JSON default dengan kebijakan izin Anda. Ganti nilai placeholder untuk nama peran dan `222233334444` ARN peran IAM dengan Peran IAM Target Anda. Contoh:

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sts:AssumeRole",
                "sts:TagSession"
            ],
            "Resource": "arn:aws:iam::222233334444:role/eks-pod-identity-aws-resources"
        }
    ]
}
```

## Langkah 2: Kaitkan Peran IAM Target ke akun layanan Kubernetes
<a name="_step_2_associate_the_target_iam_role_to_a_kubernetes_service_account"></a>

Pada langkah ini, Anda akan membuat asosiasi antara peran IAM Target dan akun layanan Kubernetes di kluster EKS Anda.

1. Buka [konsol Amazon EKS](https://console.aws.amazon.com/eks/home#/clusters).

1. Di panel navigasi kiri, pilih **Clusters**, lalu pilih nama cluster yang ingin Anda tambahkan asosiasi.

1. Pilih tab **Access**.

1. Dalam **asosiasi Pod Identity**, pilih **Create**.

1. Pilih [peran Identitas Pod EKS dalam peran](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-role.html) **IAM** untuk diasumsikan oleh beban kerja Anda.

1. Pilih peran IAM Target dalam peran **IAM Target yang akan diasumsikan oleh peran** [EKS Pod Identity](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-role.html).

1. Di bidang **namespace Kubernetes**, masukkan nama namespace tempat Anda ingin membuat asosiasi (misalnya,). `my-app-namespace` Ini menentukan di mana akun layanan berada.

1. Di kolom **akun layanan Kubernetes, masukkan nama akun** layanan (misalnya,`my-service-account`) yang akan menggunakan kredensial IAM. Ini menautkan peran IAM ke akun layanan.

1. (Opsional) Pilih **Nonaktifkan tag sesi** untuk menonaktifkan tag sesi default yang ditambahkan Pod Identity secara otomatis ketika mengambil peran.

1. **(Opsional) Alihkan **kebijakan sesi Konfigurasi untuk mengonfigurasi kebijakan** IAM agar menerapkan batasan tambahan pada asosiasi Identitas Pod ini di luar izin yang ditentukan dalam kebijakan IAM yang dilampirkan pada peran IAM Target.**
**catatan**  
1. Kebijakan sesi hanya dapat diterapkan jika setelan **Nonaktifkan tag sesi** dicentang. 2. Jika Anda menetapkan kebijakan sesi, maka pembatasan kebijakan berlaku untuk izin peran IAM **Target dan bukan peran IAM** yang terkait dengan asosiasi **Identitas** Pod ini.

1. Pilih **Buat** untuk membuat asosiasi.