Memberikan AWS Resilience Hub akses ke sumber daya di kluster Amazon EKS Anda - AWS Hub Ketahanan

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

Memberikan AWS Resilience Hub akses ke sumber daya di kluster Amazon EKS Anda

AWS Resilience Hub memungkinkan Anda mengakses sumber daya yang terletak di kluster Amazon EKS asalkan Anda telah mengonfigurasi izin yang diperlukan.

Untuk memberikan izin yang diperlukan AWS Resilience Hub untuk menemukan dan menilai sumber daya dalam klaster Amazon EKS
  1. Konfigurasikan peran IAM untuk mengakses kluster Amazon EKS.

    Jika Anda telah mengonfigurasi aplikasi Anda menggunakan akses berbasis peran, Anda dapat melewati langkah ini dan melanjutkan ke langkah 2 dan menggunakan peran yang telah Anda gunakan untuk membuat aplikasi. Untuk informasi selengkapnya tentang cara AWS Resilience Hub menggunakan peran IAM, lihatBagaimana AWS Resilience Hub bekerja dengan IAM.

    Jika Anda telah mengonfigurasi aplikasi menggunakan izin pengguna IAM saat ini, Anda harus membuat peran AwsResilienceHubAssessmentEKSAccessRole IAM di akun yang sama dengan cluster Amazon EKS. Peran IAM ini kemudian akan digunakan saat mengakses cluster Amazon EKS Anda.

    Saat mengimpor dan menilai aplikasi Anda, AWS Resilience Hub gunakan peran IAM untuk mengakses sumber daya di klaster Amazon EKS Anda. Peran ini harus dibuat di akun yang sama dengan cluster Amazon EKS Anda dan akan dipetakan dengan grup Kubernetes yang menyertakan izin yang diperlukan oleh untuk AWS Resilience Hub menilai kluster Amazon EKS Anda.

    Jika klaster Amazon EKS Anda berada di akun yang sama dengan akun AWS Resilience Hub panggilan, peran harus dibuat menggunakan kebijakan kepercayaan IAM berikut. Dalam kebijakan kepercayaan IAM ini, caller_IAM_role digunakan di akun saat ini untuk memanggil API. AWS Resilience Hub

    catatan

    caller_IAM_roleIni adalah peran yang terkait dengan akun AWS pengguna Anda.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::eks_cluster_account_id:role/caller_IAM_role" }, "Action": "sts:AssumeRole" } ] }

    Jika klaster Amazon EKS Anda berada di akun silang (akun yang berbeda dari akun AWS Resilience Hub panggilan), Anda harus membuat peran AwsResilienceHubAssessmentEKSAccessRole IAM menggunakan kebijakan kepercayaan IAM berikut:

    catatan

    Sebagai prasyarat, untuk mengakses kluster Amazon EKS yang digunakan di akun yang berbeda dari akun AWS Resilience Hub pengguna, Anda harus mengonfigurasi akses multi-akun. Untuk informasi selengkapnya, silakan lihat

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::eks_cluster_account_id:role/AwsResilienceHubExecutorRole" }, "Action": "sts:AssumeRole" } ] }
  2. Buat ClusterRole dan ClusterRoleBinding (atauRoleBinding) peran untuk AWS Resilience Hub aplikasi.

    Membuat ClusterRole dan ClusterRoleBinding akan memberikan izin hanya-baca yang diperlukan AWS Resilience Hub untuk menganalisis dan menilai sumber daya yang merupakan bagian dari ruang nama tertentu di klaster Amazon EKS Anda.

    AWS Resilience Hub memungkinkan Anda membatasi aksesnya ke ruang nama Anda untuk menghasilkan penilaian ketahanan dengan menyelesaikan salah satu dari berikut ini:

    1. Berikan akses baca di semua ruang nama ke AWS Resilience Hub aplikasi.

      AWS Resilience Hub Untuk menilai ketahanan sumber daya di semua ruang nama dalam klaster Amazon EKS, Anda harus membuat berikut dan. ClusterRole ClusterRoleBinding

      • resilience-hub-eks-access-cluster-role(ClusterRole) — Menentukan izin yang diperlukan oleh AWS Resilience Hub untuk menilai kluster Amazon EKS Anda.

      • resilience-hub-eks-access-cluster-role-binding(ClusterRoleBinding) — Mendefinisikan grup bernama resilience-hub-eks-access-group di kluster Amazon EKS Anda yang memberikan penggunanya, izin yang diperlukan untuk menjalankan penilaian ketahanan di. AWS Resilience Hub

      Template untuk memberikan akses baca di semua ruang nama ke AWS Resilience Hub aplikasi adalah sebagai berikut:

      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 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 verbs: - get - list - apiGroups: - karpenter.k8s.aws resources: - awsnodetemplates 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
    2. Memberikan AWS Resilience Hub akses untuk membaca ruang nama tertentu.

      Anda dapat membatasi AWS Resilience Hub untuk mengakses sumber daya dalam satu set ruang nama tertentu menggunakan. RoleBinding Untuk mencapai ini, Anda harus membuat peran berikut:

      • ClusterRole— AWS Resilience Hub Untuk mengakses sumber daya di ruang nama tertentu dalam klaster Amazon EKS dan menilai ketahanannya, Anda harus membuat peran berikut. ClusterRole

        • resilience-hub-eks-access-cluster-role— Menentukan izin yang diperlukan untuk menilai sumber daya dalam ruang nama tertentu.

        • resilience-hub-eks-access-global-cluster-role— Menentukan izin yang diperlukan untuk menilai sumber daya dengan cakupan klaster, yang tidak terkait dengan namespace tertentu, dalam kluster Amazon EKS Anda. AWS Resilience Hub memerlukan izin untuk mengakses sumber daya dengan cakupan klaster (seperti node) di klaster Amazon EKS Anda untuk menilai ketahanan aplikasi Anda.

        Template untuk membuat ClusterRole peran adalah sebagai berikut:

        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 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 --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: resilience-hub-eks-access-global-cluster-role rules: - apiGroups: - "" resources: - nodes verbs: - get - list - apiGroups: - karpenter.sh resources: - provisioners verbs: - get - list - apiGroups: - karpenter.k8s.aws resources: - awsnodetemplates verbs: - get - list --- EOF
      • RoleBindingperan — Peran ini memberikan izin yang diperlukan AWS Resilience Hub untuk mengakses sumber daya dalam ruang nama tertentu. Artinya, Anda harus membuat RoleBinding peran di setiap namespace AWS Resilience Hub untuk mengaktifkan akses sumber daya dalam namespace yang diberikan.

        catatan

        Jika Anda menggunakan ClusterAutoscaler untuk penskalaan otomatis, Anda juga harus membuat RoleBinding di. kube-system Ini diperlukan untuk menilai AndaClusterAutoscaler, yang merupakan bagian dari kube-system namespace.

        Dengan melakukan ini, Anda akan memberikan izin AWS Resilience Hub yang diperlukan untuk menilai sumber daya di dalam kube-system namespace saat menilai kluster Amazon EKS Anda.

        Template untuk membuat RoleBinding peran adalah sebagai berikut:

        cat << EOF | kubectl apply -f - apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: resilience-hub-eks-access-cluster-role-binding namespace: <namespace> 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
      • ClusterRoleBindingperan — Peran ini memberikan izin yang diperlukan untuk AWS Resilience Hub mengakses sumber daya dengan cakupan kluster.

        Template untuk membuat ClusterRoleBinding peran adalah sebagai berikut:

        cat << EOF | kubectl apply -f - --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: resilience-hub-eks-access-global-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-global-cluster-role apiGroup: rbac.authorization.k8s.io --- EOF
  3. Perbarui aws-auth ConfigMap untuk memetakan resilience-hub-eks-access-group dengan peran IAM yang digunakan untuk mengakses kluster Amazon EKS.

    Langkah ini membuat pemetaan antara peran IAM yang digunakan pada langkah 1 dengan grup Kubernetes yang dibuat pada langkah 2. Pemetaan ini memberikan izin ke peran IAM untuk mengakses sumber daya di dalam klaster Amazon EKS.

    catatan
    • ROLE-NAMEmengacu pada peran IAM yang digunakan untuk mengakses cluster Amazon EKS.

      • Jika aplikasi Anda dikonfigurasi untuk menggunakan akses berbasis peran, peran tersebut harus berupa peran invoker atau peran akun sekunder yang diteruskan AWS Resilience Hub saat membuat aplikasi.

      • Jika aplikasi Anda dikonfigurasi untuk menggunakan pengguna IAM saat ini untuk mengakses sumber daya, itu harus menjadi. AwsResilienceHubAssessmentEKSAccessRole

    • ACCOUNT-IDharus menjadi ID AWS akun cluster Amazon EKS.

    Anda dapat membuat aws-auth ConfigMap menggunakan salah satu cara berikut:

    • Menggunakan eksctl

      Gunakan perintah berikut untuk memperbarui aws-authConfigMap:

      eksctl create iamidentitymapping \ --cluster <cluster-name> \ --region=<region-code> \ --arn arn:aws:iam::<ACCOUNT-ID>:role/<ROLE-NAME>\ --group resilience-hub-eks-access-group \ --username AwsResilienceHubAssessmentEKSAccessRole
    • Anda dapat mengedit secara manual aws-auth ConfigMap dengan menambahkan detail peran IAM ke mapRoles bagian data di ConfigMap bawah. Gunakan perintah berikut untuk mengedit file aws-authConfigMap.

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

      mapRolesbagian terdiri dari parameter berikut:

      • rolearnNama Sumber Daya Amazon (ARN) dari peran IAM yang akan ditambahkan.

        • ARN Sintaks —. arn:aws:iam::<ACCOUNT-ID>:role/<ROLE-NAME>

      • username— Nama pengguna dalam Kubernetes untuk dipetakan ke peran IAM (). AwsResilienceHubAssessmentEKSAccessRole

      • groups— Nama grup harus cocok dengan nama grup yang dibuat pada Langkah 2 (resilience-hub-eks-access-group).

      catatan

      Jika mapRoles bagian tidak ada, Anda harus menambahkan bagian ini secara manual.

      Gunakan templat berikut untuk menambahkan detail peran IAM ke mapRoles bagian data di ConfigMap bawah.

      - groups: - resilience-hub-eks-access-group rolearn: arn:aws:iam::<ACCOUNT-ID>:role/<ROLE-NAME> username: AwsResilienceHubAssessmentEKSAccessRole