기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
IAM 역할 및 권한 참조
평가를 위한 IAM 역할
평가를 실행하려면 차세대 Resilience Hub가 리소스 구성을 검색하고 이해할 수 있는 다양한 읽기 전용 권한이 있는 IAM 역할을 수임할 수 있어야 합니다 AWS .
IAM 콘솔에서 AWS IAM 역할을 생성할 수 있습니다. 사용자 지정 신뢰 정책을 선택하고 다음과 같은 신뢰 정책을 사용합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "resiliencehub.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": {} } ] }
권한에서 AWSResilienceHubAsssessmentExecutionPolicy 관리형 정책과 ReadOnlyAccess 관리형 정책을 선택합니다. ReadOnlyAccess 정책은 실패 모드 평가의 최상의 성능을 위해 필요합니다.
IAM 서비스 연결 역할
차세대 Resilience Hub는 AWSResilienceHubServiceRolePolicy 관리형 정책을 사용하여 서비스 연결 역할을 자동으로 생성합니다. 이 역할은 AWS Organizations 지원에만 필요합니다.
Terraform 상태 파일 액세스 권한
차세대 Resilience Hub 서비스에 Terraform 상태 파일을 포함하는 경우 다음과 같은 정책을 사용하여 Amazon S3 버킷에서 Terraform 파일을 읽을 수 있는 권한을 제공합니다.
{ "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" } ] }
Amazon EKS 권한
Amazon EKS 클러스터를 차세대 Resilience Hub 서비스에 포함하는 경우 다음 3단계 프로세스에 따라 Kubernetes 역할 기반 액세스 제어(RBAC)를 사용하여 Amazon EKS 클러스터의 구성 데이터를 읽을 수 있는 차세대 Resilience Hub 권한을 제공합니다.
1단계: Amazon EKS 클러스터에 다음을 적용합니다.
이렇게 하면 모든 네임스페이스에서 필요한 Kubernetes 리소스에 대한 차세대 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 - 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
2단계: IAM 역할을 Kubernetes 그룹에 매핑
생성한 IAM 역할을 resilience-hub-eks-access-group Kubernetes 그룹에 매핑합니다. Amazon EKS 액세스 항목(권장) 또는 aws-auth ConfigMap을 사용할 수 있습니다.
옵션 A: EKS 액세스 항목 사용(권장)
EKS 액세스 항목은 클러스터 인증을 관리하는 데 선호되는 방법입니다. 클러스터는 API 또는 API_AND_CONFIG_MAP 인증 모드를 사용해야 합니다.
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"]'
옵션 B: aws-auth ConfigMap 사용
클러스터에서 CONFIG_MAP 또는 API_AND_CONFIG_MAP 인증 모드를 사용하는 경우 대신 aws-auth ConfigMap을 편집할 수 있습니다.
eksctl 사용:
eksctl create iamidentitymapping \ --clustercluster-name\ --regionregion\ --arn arn:aws:iam::ACCOUNT-ID:role/ResilienceHubRole \ --group resilience-hub-eks-access-group \ --username AwsResilienceHubAssessmentEKSAccessRole
또는 ConfigMap을 수동으로 편집합니다.
kubectl edit -n kube-system configmap/aws-auth
데이터 섹션의 mapRoles 아래에 이를 추가합니다.
- groups: - resilience-hub-eks-access-group rolearn: arn:aws:iam::ACCOUNT-ID:role/ResilienceHubRole username: AwsResilienceHubAssessmentEKSAccessRole
3단계: 확인
RBAC 리소스가 존재하고 역할 매핑이 있는지 확인합니다.
kubectl get clusterrole resilience-hub-eks-access-cluster-role kubectl describe clusterrolebinding resilience-hub-eks-access-cluster-role-binding
액세스 항목을 사용하는 경우(옵션 A):
aws eks describe-access-entry \ --cluster-namecluster-name\ --principal-arn arn:aws:iam::ACCOUNT-ID:role/ResilienceHubRole
aws-auth ConfigMap(옵션 B)을 사용하는 경우:
kubectl get configmap aws-auth -n kube-system -o yaml | grep -A 3 "ResilienceHubRole"