翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
IAM ロールとアクセス許可のリファレンス
評価と耐障害性テスト用の IAM ロール
評価またはレジリエンステストを実行するには、次世代の Resilience Hub が IAM ロールを引き受けることができる必要があります。評価には、 AWS リソースの設定を検出して理解するための読み取り専用アクセス許可が必要です。耐障害性テストには、ユーザーに代わって AWS Fault Injection Service (AWS FIS) 実験を開始および管理するためのアクセス許可も必要です。
IAM コンソールで IAM AWS ロールを作成できます。カスタム信頼ポリシーを選択し、次のような信頼ポリシーを使用します。
{ "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 クラスターに以下を適用する
これにより、次世代 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"