

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

# Izin dan peran IAM yang diperlukan
<a name="next-gen-iam-permissions"></a>

**AWS kebijakan yang dikelola **

Anda dapat melampirkan `AWSResilienceHubV2AssessmentExecutionPolicy` ke identitas IAM Anda. Saat menjalankan penilaian, kebijakan ini memberikan izin akses baca-saja ke AWS layanan lain untuk penemuan, penilaian, dan manajemen ketahanan. Untuk detail tentang izin yang disertakan dalam kebijakan ini, lihat[AWSResilienceHubV2AssessmentExecutionPolicy](next-gen-security-iam-awsmanpol.md#next-gen-security_iam_aws-v2-assessment-policy).

**catatan**  
Ini `AWSResilienceHubV2AssessmentExecutionPolicy` menggantikan yang sebelumnya `AWSResilienceHubAsssessmentExecutionPolicy` untuk digunakan dengan Resilience Hub generasi berikutnya.

Jika Anda menggunakan pengujian ketahanan, lampirkan juga kebijakan ter `AWSResilienceHubResilienceTestingPolicy` kelola. Kebijakan ini memberikan Resilience Hub izin AWS Fault Injection Service (AWS FIS) yang diperlukan untuk memulai dan mengelola eksperimen atas nama Anda. Untuk detail tentang izin yang disertakan dalam kebijakan ini, lihat[AWSResilienceHubResilienceTestingPolicy](next-gen-security-iam-awsmanpol.md#next-gen-security_iam_aws-resilience-testing-policy).

**catatan**  
Jika kebijakan terkelola tidak tersedia di akun Anda, buat kebijakan sebaris dengan izin yang sama. Untuk isi kebijakan, lihat[AWSResilienceHubResilienceTestingPolicy](next-gen-security-iam-awsmanpol.md#next-gen-security_iam_aws-resilience-testing-policy).

**Peran IAM untuk penilaian dan pengujian ketahanan **

Untuk menjalankan penilaian atau uji ketahanan, generasi Resilience Hub berikutnya harus mengambil peran IAM dengan izin yang diperlukan. Peran ini menemukan dan membaca konfigurasi sumber AWS daya Anda, dan — ketika pengujian ketahanan diaktifkan — memulai dan mengelola AWS FIS eksperimen atas nama Anda.

Ada dua cara untuk membuat atau mengkonfigurasi peran ini:
+ **Buat peran layanan baru (disarankan) ** — Saat Anda membuat atau mengedit layanan di konsol Resilience Hub generasi berikutnya, Anda dapat memilih ** Buat peran baru ** di bawah Model ** Izin**. Konsol secara otomatis membuat peran IAM dengan kebijakan kepercayaan yang benar dan melampirkan kebijakan terkel `AWSResilienceHubV2AssessmentExecutionPolicy` ola.
+ **Gunakan peran layanan yang ada ** — Jika Anda sudah memiliki peran yang dikonfigurasi, atau jika Anda lebih suka membuat peran di luar konsol, pilih ** Gunakan peran layanan yang ada**. Kemudian pilih peran dari daftar dan pastikan bahwa peran tersebut memiliki kebijakan kepercayaan dan izin yang diperlukan yang dijelaskan di bawah ini.

Untuk membuat peran secara manual, buka konsol IAM. Pilih Kebijakan kepercayaan ** khusus ** dan gunakan kebijakan kepercayaan seperti ini:

```
{
  "Version": "2012-10-17"		 	 	 ,
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "resiliencehub.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {}
    }
  ]
}
```

Untuk izin, lampirkan kebijakan `AWSResilienceHubV2AssessmentExecutionPolicy` terkelola. Jika Anda menggunakan pengujian ketahanan, lampirkan juga kebijakan ter `AWSResilienceHubResilienceTestingPolicy` kelola.

**Peran IAM Service-Linked **

Resilience Hub generasi berikutnya secara otomatis membuat Service-Linked Peran dengan kebijakan `AWSResilienceHubServiceRolePolicy` terkelola.

**Izin akses file status terraform **

Jika Anda menyertakan file status Terraform ke dalam layanan Resilience Hub generasi berikutnya, berikan izin untuk membaca file Terraform dari bucket Amazon S3 Anda dengan kebijakan seperti ini:

```
{
  "Version": "2012-10-17"		 	 	 ,
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::{{s3-bucket-name}}/{{path-to-state-file}}"
    },
    {
      "Effect": "Allow",
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::{{s3-bucket-name}}"
    }
  ]
}
```

**Izin Amazon EKS **

Jika Anda menyertakan cluster Amazon EKS ke dalam layanan Resilience Hub generasi berikutnya, ikuti proses 3 langkah berikut untuk memberikan izin Resilience Hub generasi berikutnya untuk membaca data konfigurasi untuk cluster Amazon EKS menggunakan kontrol akses berbasis peran (RBAC) Kubernetes.

**Langkah 1: Terapkan yang berikut ini ke cluster Amazon EKS Anda **

Ini memberikan akses read-only Hub Resilience Hub generasi berikutnya ke sumber daya Kubernetes yang dibutuhkannya di semua ruang nama:

```
cat << EOF | kubectl apply -f -
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: resilience-hub-eks-access-cluster-role
rules:
- apiGroups:
    - ""
  resources:
    - pods
    - replicationcontrollers
    - nodes
    - services
  verbs:
    - get
    - list
- apiGroups:
    - apps
  resources:
    - deployments
    - replicasets
  verbs:
    - get
    - list
- apiGroups:
    - policy
  resources:
    - poddisruptionbudgets
  verbs:
    - get
    - list
- apiGroups:
    - autoscaling.k8s.io
  resources:
    - verticalpodautoscalers
  verbs:
    - get
    - list
- apiGroups:
    - autoscaling
  resources:
    - horizontalpodautoscalers
  verbs:
    - get
    - list
- apiGroups:
    - karpenter.sh
  resources:
    - provisioners
    - nodepools
  verbs:
    - get
    - list
- apiGroups:
    - karpenter.k8s.aws
  resources:
    - awsnodetemplates
    - ec2nodeclasses
  verbs:
    - get
    - list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: resilience-hub-eks-access-cluster-role-binding
subjects:
  - kind: Group
    name: resilience-hub-eks-access-group
    apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: resilience-hub-eks-access-cluster-role
  apiGroup: rbac.authorization.k8s.io
---
EOF
```

**Langkah 2: Petakan peran IAM ke grup Kubernetes **

Petakan peran IAM yang Anda buat ke grup `resilience-hub-eks-access-group` Kubernetes. Anda dapat menggunakan entri akses Amazon EKS (disarankan) atau `aws-auth` ConfigMap.

**Opsi A: Menggunakan entri akses EKS (disarankan) **

Entri akses EKS adalah metode yang disukai untuk mengelola otentikasi cluster. Cluster Anda harus menggunakan `API` atau mode `API_AND_CONFIG_MAP` otentikasi.

```
aws eks create-access-entry \
  --cluster-name {{cluster-name}} \
  --principal-arn arn:aws:iam::{{ACCOUNT-ID}}:role/ResilienceHubRole \
  --type STANDARD \
  --kubernetes-groups '["resilience-hub-eks-access-group"]'
```

**Opsi B: Menggunakan aws-auth ConfigMap **

Jika cluster Anda menggunakan `CONFIG_MAP` atau mode `API_AND_CONFIG_MAP` otentikasi, Anda dapat mengedit aws-aut ConfigMap h sebagai gantinya:

Menggunakan eksctl:

```
eksctl create iamidentitymapping \
  --cluster {{cluster-name}} \
  --region {{region}} \
  --arn arn:aws:iam::{{ACCOUNT-ID}}:role/ResilienceHubRole \
  --group resilience-hub-eks-access-group \
  --username AwsResilienceHubAssessmentEKSAccessRole
```

Atau edit secara manual ConfigMap:

```
kubectl edit -n kube-system configmap/aws-auth
```

Tambahkan ini `mapRoles` di bawah di bagian data:

```
- groups:
    - resilience-hub-eks-access-group
  rolearn: arn:aws:iam::{{ACCOUNT-ID}}:role/ResilienceHubRole
  username: AwsResilienceHubAssessmentEKSAccessRole
```

**Langkah 3: Verifikasi **

Konfirmasikan bahwa sumber daya RBAC ada dan pemetaan peran sudah ada:

```
kubectl get clusterrole resilience-hub-eks-access-cluster-role
kubectl describe clusterrolebinding resilience-hub-eks-access-cluster-role-binding
```

Jika menggunakan entri akses (Opsi A):

```
aws eks describe-access-entry \
  --cluster-name {{cluster-name}} \
  --principal-arn arn:aws:iam::{{ACCOUNT-ID}}:role/ResilienceHubRole
```

Jika menggunakan aws-auth ConfigMap (Opsi B):

```
kubectl get configmap aws-auth -n kube-system -o yaml | grep -A 3 "ResilienceHubRole"
```