View a markdown version of this page

IAM 역할 및 권한 참조 - AWS Resilience Hub

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

IAM 역할 및 권한 참조

평가 및 복원력 테스트를 위한 IAM 역할

평가 또는 복원력 테스트를 실행하려면 차세대 Resilience Hub가 IAM 역할을 수임할 수 있어야 합니다. AWS 리소스 구성을 검색하고 이해하려면 평가에 읽기 전용 권한이 필요합니다. 복원력 테스트에는 사용자를 대신하여 AWS Fault Injection Service (AWS FIS) 실험을 시작하고 관리할 수 있는 권한이 추가로 필요합니다.

IAM 콘솔에서 AWS IAM 역할을 생성할 수 있습니다. 사용자 지정 신뢰 정책을 선택하고 다음과 같은 신뢰 정책을 사용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "resiliencehub.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": {} } ] }

권한의 경우 AWSResilienceHubV2AssessmentExecutionPolicy 관리형 정책을 연결합니다. 이 정책은 복원력 검색, 평가 및 관리를 위해 AWS 서비스에 대한 읽기 전용 액세스 권한을 부여합니다.

참고

AWSResilienceHubV2AssessmentExecutionPolicy는 이전를 대체AWSResilienceHubAsssessmentExecutionPolicy하여 차세대 Resilience Hub와 함께 사용합니다. 이 정책에 포함된 권한에 대한 자세한 내용은 AWSResilienceHubV2AssessmentExecutionPolicy 섹션을 참조하세요.

복원력 테스트를 사용하는 경우 AWSResilienceHubResilienceTestingPolicy 관리형 정책도 연결합니다. 이 정책은 사용자를 대신하여 실험을 시작하고 관리하는 데 필요한 AWS FIS 권한을 Resilience Hub에 부여합니다.

참고

계정에서 관리형 정책을 사용할 수 없는 경우 동일한 권한으로 인라인 정책을 생성합니다. 정책 내용은 섹션을 참조하세요AWSResilienceHubResilienceTestingPolicy.

IAM 서비스 연결 역할

차세대 Resilience Hub는 AWSResilienceHubServiceRolePolicy 관리형 정책을 사용하여 서비스 연결 역할을 자동으로 생성합니다.

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" } ] }

복원력 테스트를 위한 IAM 실행 역할

복원력 테스트는가 리소스에 결함을 주입하도록 AWS Fault Injection Service 가정하는 IAM 역할에서 실행됩니다. 필요한 권한은 테스트 템플릿에 따라 달라지며 단일 계정 및 다중 계정 테스트는 서로 다른 역할 구조를 사용합니다. 각 테스트에 대한 신뢰 및 권한 정책은 섹션을 참조하세요복원력 테스트를 위한 IAM 실행 역할.

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-name cluster-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 \ --cluster cluster-name \ --region region \ --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-name cluster-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"