Amazon EKS 클러스터의 리소스에 AWS Resilience Hub 대한 액세스 권한 부여 - AWS 레질리언스 허브

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon EKS 클러스터의 리소스에 AWS Resilience Hub 대한 액세스 권한 부여

AWS Resilience Hub 필요한 권한을 구성한 경우 Amazon EKS 클러스터에 있는 리소스에 액세스할 수 있습니다.

Amazon EKS 클러스터 내에서 리소스를 AWS Resilience Hub 검색하고 평가하는 데 필요한 권한을 부여하려면
  1. Amazon EKS 클러스터에 액세스할 수 있도록 IAM 역할을 구성합니다.

    역할 기반 액세스를 사용하여 애플리케이션을 구성한 경우 이 단계를 건너뛰고 2단계로 진행하여 애플리케이션을 생성하는 데 사용한 역할을 사용할 수 있습니다. AWS Resilience Hub 이 IAM roles 역할을 사용하는 방법에 대한 자세한 내용은 AWS 레질리언스 허브가 IAM과 함께 작동하는 방식 단원을 참조하세요.

    현재 IAM 사용자 권한을 사용하여 애플리케이션을 구성한 경우 Amazon EKS 클러스터와 동일한 계정에 AwsResilienceHubAssessmentEKSAccessRole IAM 역할을 생성해야 합니다. 그러면 Amazon EKS 클러스터에 액세스하는 동안 이 IAM 역할이 사용됩니다.

    애플리케이션을 가져오고 평가하는 동안 IAM 역할을 AWS Resilience Hub 사용하여 Amazon EKS 클러스터의 리소스에 액세스합니다. 이 역할은 Amazon EKS 클러스터와 동일한 계정에서 생성되어야 하며 Amazon EKS 클러스터를 AWS Resilience Hub 평가하는 데 필요한 권한이 포함된 Kubernetes 그룹과 매핑됩니다.

    Amazon EKS 클러스터가 AWS Resilience Hub 통화 계정과 동일한 계정에 있는 경우 다음 IAM 신뢰 정책을 사용하여 역할을 생성해야 합니다. 이 IAM 신뢰 정책에서는 caller_IAM_role 현재 계정에서 API를 호출하는 데 사용됩니다. AWS Resilience Hub

    참고

    caller_IAM_role는 AWS 사용자 계정과 관련된 역할입니다.

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

    Amazon EKS 클러스터가 교차 계정 ( AWS Resilience Hub 통화 계정과 다른 계정) 에 있는 경우 다음 IAM 신뢰 정책을 사용하여 AwsResilienceHubAssessmentEKSAccessRole IAM 역할을 생성해야 합니다.

    참고

    사전 요구 사항으로, AWS Resilience Hub 사용자 계정과 다른 계정에 배포된 Amazon EKS 클러스터에 액세스하려면 다중 계정 액세스를 구성해야 합니다. 자세한 내용을 알아보려면 다음 섹션을 참조하세요.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::eks_cluster_account_id:role/AwsResilienceHubExecutorRole" }, "Action": "sts:AssumeRole" } ] }
  2. 애플리케이션을 위한 ClusterRoleClusterRoleBinding (또는RoleBinding) 역할을 생성합니다. AWS Resilience Hub

    Amazon EKS 클러스터의 특정 네임스페이스에 속하는 리소스를 분석하고 평가하는 데 필요한 읽기 전용 권한을 생성하고 ClusterRole 부여합니다. ClusterRoleBinding AWS Resilience Hub

    AWS Resilience Hub 다음 중 하나를 완료하여 복원력 평가를 생성하기 위해 네임스페이스에 대한 액세스를 제한할 수 있습니다.

    1. 모든 네임스페이스에 대한 읽기 액세스 권한을 AWS Resilience Hub 애플리케이션에 부여합니다.

      Amazon EKS 클러스터 내 모든 네임스페이스의 리소스 복원력을 AWS Resilience Hub 평가하려면 다음을 생성하고 생성해야 합니다. ClusterRole ClusterRoleBinding

      • resilience-hub-eks-access-cluster-role(ClusterRole) — Amazon EKS 클러스터를 평가하는 AWS Resilience Hub 데 필요한 권한을 정의합니다.

      • resilience-hub-eks-access-cluster-role-binding(ClusterRoleBinding) — Amazon EKS 클러스터에서 resilience-hub-eks-access-group 이름이 지정된 그룹을 정의하여 AWS Resilience Hub에서 사용자에세 복원력 평가를 실행하기 위해 필요한 권한을 부여합니다.

      모든 네임스페이스에 대한 읽기 액세스 권한을 AWS Resilience Hub 애플리케이션에 부여하는 템플릿은 다음과 같습니다.

      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. 특정 네임스페이스를 읽을 수 있는 액세스 권한 부여 AWS Resilience Hub .

      를 사용하여 특정 네임스페이스 집합 내의 AWS Resilience Hub 리소스에 대한 액세스를 제한할 수 있습니다. RoleBinding 이를 위해서는 다음 역할을 생성해야 합니다.

      • ClusterRole— Amazon EKS 클러스터 내 특정 네임스페이스의 리소스에 액세스하고 복원력을 AWS Resilience Hub 평가하려면 다음 역할을 생성해야 합니다. ClusterRole

        • resilience-hub-eks-access-cluster-role— 특정 네임스페이스 내의 리소스를 평가하는 데 필요한 권한을 지정합니다.

        • resilience-hub-eks-access-global-cluster-role— Amazon EKS 클러스터 내에서 특정 네임스페이스에 연결되지 않은 클러스터 범위 리소스를 평가하는 데 필요한 권한을 지정합니다. AWS Resilience Hub 애플리케이션의 복원력을 평가하려면 Amazon EKS 클러스터의 클러스터 범위 리소스 (예: 노드) 에 액세스할 수 있는 권한이 필요합니다.

        ClusterRole 역할을 생성하기 위한 템플릿은 다음과 같습니다.

        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
      • RoleBinding역할 - 이 역할은 특정 네임스페이스 내의 리소스에 액세스하는 AWS Resilience Hub 데 필요한 권한을 부여합니다. 즉, 지정된 네임스페이스 내의 리소스에 액세스할 수 있도록 AWS Resilience Hub 하려면 각 네임스페이스에 RoleBinding 역할을 만들어야 합니다.

        참고

        ClusterAutoscaler을 자동 스케일링에 사용하는 경우 kube-system에서 추가로 RoleBinding를 생성해야 합니다. 이는 kube-system 네임스페이스의 일부인 ClusterAutoscaler을 평가하는 데 필요합니다.

        이렇게 하면 Amazon EKS AWS Resilience Hub 클러스터를 평가하는 동안 kube-system 네임스페이스 내의 리소스를 평가하는 데 필요한 권한을 부여하게 됩니다.

        RoleBinding 역할을 생성하기 위한 템플릿은 다음과 같습니다.

        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
      • ClusterRoleBinding역할 - 이 역할은 클러스터 범위 리소스에 액세스하는 AWS Resilience Hub 데 필요한 권한을 부여합니다.

        ClusterRoleBinding 역할을 생성하기 위한 템플릿은 다음과 같습니다.

        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. resilience-hub-eks-access-group를 Amazon EKS 클러스터에 액세스하는 데 사용되는 IAM 역할과 매핑하도록 aws-auth ConfigMap을 업데이트하세요.

    이 단계는 1단계에서 사용한 IAM 역할과 2단계에서 생성된 Kubernetes 그룹 간의 매핑을 생성합니다. 이 매핑은 Amazon EKS 클러스터 내의 리소스에 액세스할 수 있는 권한을 IAM 역할에 부여합니다.

    참고
    • ROLE-NAME은 Amazon EKS 클러스터에 액세스하는 데 사용되는 IAM 역할을 나타냅니다.

      • 애플리케이션이 역할 기반 액세스를 사용하도록 구성된 경우 역할은 애플리케이션 생성 시 전달되는 호출자 역할 또는 보조 계정 역할이어야 합니다. AWS Resilience Hub

      • 현재 IAM 사용자를 사용하여 리소스에 액세스하도록 애플리케이션을 구성한 경우 해당 사용자는 반드시 AwsResilienceHubAssessmentEKSAccessRole이어야 합니다.

    • ACCOUNT-IDAmazon EKS 클러스터의 AWS 계정 ID여야 합니다.

    다음 방법 중 하나를 사용하여 aws-auth ConfigMap를 설치할 수 있습니다.

    • eksctl 사용하기

      다음 명령을 실행하여 aws-auth ConfigMap를 업데이트합니다.

      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
    • ConfigMap 언더 데이터 mapRoles 섹션에 IAM 역할 세부 정보를 추가하여 aws-auth ConfigMap를 수동으로 편집할 수 있습니다. aws-auth ConfigMap를 편집하려면 다음 명령을 입력합니다.

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

      mapRoles 섹션에는 다음 파라미터가 포함될 수 있습니다.

      • rolearn — 추가될 IAM 역할의 Amazon 리소스 이름(ARN)입니다.

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

      • username — Kubernetes 내에서 IAM 역할에 매핑할 사용자 이름(AwsResilienceHubAssessmentEKSAccessRole)

      • groups — 그룹 이름은 2단계 (resilience-hub-eks-access-group) 에서 만든 그룹 이름과 일치해야 합니다.

      참고

      mapRoles 섹션이 없는 경우 이 섹션을 수동으로 추가해야 합니다.

      다음 템플릿을 사용하여 ConfigMap 언더 데이터 mapRoles 섹션에 IAM 역할 세부 정보를 추가합니다.

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