View a markdown version of this page

Peran IAM dan referensi izin - AWS Hub Ketahanan

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

Untuk menjalankan penilaian, Resilience Hub generasi berikutnya harus dapat mengambil peran IAM dengan sejumlah izin hanya-baca untuk menemukan dan memahami konfigurasi sumber daya Anda. AWS

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, pilih kebijakan AWSResilienceHubAsssessmentExecutionPolicy terkelola dan kebijakan ReadOnlyAccess terkelola. ReadOnlyAccessKebijakan ini diperlukan untuk kinerja terbaik dari penilaian mode kegagalan.

Peran IAM Service-Linked

Resilience Hub generasi berikutnya secara otomatis membuat Service-Linked Peran dengan kebijakan AWSResilienceHubServiceRolePolicy terkelola. Peran ini hanya diperlukan untuk dukungan AWS Organizations.

Izin akses file status Terraform

Jika Anda menyertakan file status Terraform ke dalam layanan Hub Ketahanan 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 kluster Amazon EKS ke dalam layanan Next generation Resilience Hub, ikuti proses 3 langkah berikut untuk memberikan izin Resilience Hub generasi berikutnya untuk membaca data konfigurasi kluster Amazon EKS Anda menggunakan kontrol akses berbasis peran Kubernetes (RBAC).

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

Ini memberi Next generation Resilience Hub akses read-only ke resource Kubernetes yang dibutuhkan di semua namespace:

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 entri akses. 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 ConfigMap aws-auth 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 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"