Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Peran IAM dan referensi izin
Peran IAM untuk penilaian dan pengujian ketahanan
Untuk menjalankan penilaian atau uji ketahanan, generasi Resilience Hub berikutnya harus dapat mengambil peran IAM. Penilaian memerlukan izin baca-saja untuk menemukan dan memahami konfigurasi sumber daya Anda AWS . Pengujian ketahanan juga memerlukan izin untuk memulai dan mengelola eksperimen AWS Fault Injection Service (AWS FIS) atas nama Anda.
Anda dapat membuat peran IAM di konsol AWS 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. Kebijakan ini memberikan akses baca-saja ke AWS layanan untuk penemuan ketahanan, penilaian, dan manajemen.
catatan
Ini AWSResilienceHubV2AssessmentExecutionPolicy menggantikan yang sebelumnya AWSResilienceHubAsssessmentExecutionPolicy untuk digunakan dengan Resilience Hub generasi berikutnya. Untuk detail tentang izin yang disertakan dalam kebijakan ini, lihatAWSResilienceHubV2AssessmentExecutionPolicy.
Jika Anda menggunakan pengujian ketahanan, lampirkan juga kebijakan ter AWSResilienceHubResilienceTestingPolicy kelola. Kebijakan ini memberikan Resilience Hub AWS FIS izin yang diperlukan untuk memulai dan mengelola eksperimen atas nama Anda.
catatan
Jika kebijakan terkelola tidak tersedia di akun Anda, buat kebijakan sebaris dengan izin yang sama. Untuk isi kebijakan, lihatAWSResilienceHubResilienceTestingPolicy.
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" } ] }
Peran eksekusi IAM untuk pengujian ketahanan
Tes ketahanan dijalankan di bawah peran IAM yang AWS Fault Injection Service mengasumsikan untuk menyuntikkan kesalahan ke sumber daya Anda. Izin yang diperlukan bergantung pada template pengujian, dan pengujian akun tunggal dan multi-akun menggunakan struktur peran yang berbeda. Untuk kebijakan kepercayaan dan izin untuk setiap pengujian, lihatPeran eksekusi IAM untuk pengujian ketahanan.
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-namecluster-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 \ --clustercluster-name\ --regionregion\ --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-namecluster-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"