翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
IAM ロールとアクセス許可のリファレンス
評価用の IAM ロール
評価を実行するには、次世代の Resilience Hub がリソースの設定を検出して理解するために、多数の読み取り専用アクセス許可を持つ IAM ロールを AWS 引き受けることができる必要があります。
IAM コンソールで IAM AWS ロールを作成できます。カスタム信頼ポリシーを選択し、次のような信頼ポリシーを使用します。
{ "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 クラスターに以下を適用する
これにより、次世代 Resilience Hub がすべての名前空間で必要とする Kubernetes リソースへの読み取り専用アクセスが許可されます。
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 ロールを Kubernetes resilience-hub-eks-access-group グループにマッピングします。Amazon EKS アクセスエントリ (推奨) または ConfigMap aws-auth を使用できます。
オプション 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"