View a markdown version of this page

必要な IAM アクセス許可とロール - AWS レジリエンスハブ

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

必要な IAM アクセス許可とロール

AWS 管理ポリシー

AWSResilienceHubV2AssessmentExecutionPolicy は IAM ID にアタッチできます。このポリシーは、評価の実行中に、回復力の検出、評価、管理のために他の AWS サービスへの読み取り専用アクセス許可を付与します。このポリシーに含まれるアクセス許可の詳細については、「AWSResilienceHubV2AssessmentExecutionPolicy」を参照してください。

注記

AWSResilienceHubV2AssessmentExecutionPolicy は、以前の AWSResilienceHubAsssessmentExecutionPolicyを次世代の Resilience Hub に置き換えます。

耐障害性テストを使用する場合は、 AWSResilienceHubResilienceTestingPolicy管理ポリシーもアタッチします。このポリシーは、ユーザーに代わって実験を開始および管理するために必要な AWS Fault Injection Service (AWS FIS) アクセス許可を Resilience Hub に付与します。このポリシーに含まれるアクセス許可の詳細については、「AWSResilienceHubResilienceTestingPolicy」を参照してください。

注記

アカウントで管理ポリシーを使用できない場合は、同じアクセス許可を持つインラインポリシーを作成します。ポリシーの内容については、「」を参照してくださいAWSResilienceHubResilienceTestingPolicy

評価と耐障害性テスト用の IAM ロール

評価または耐障害性テストを実行するには、次世代の Resilience Hub が必要なアクセス許可を持つ IAM ロールを引き受ける必要があります。このロールは、リソースの設定を検出して読み取り、耐障害性テストが有効になっている場合、ユーザーに代わって実験を開始および管理 AWS FIS します AWS 。

このロールを作成または設定するには、次の 2 つの方法があります。

  • 新しいサービスロールの作成 (推奨) – 次世代 Resilience Hub コンソールでサービスを作成または編集するときは、アクセス許可モデル新しいロールの作成を選択できます。コンソールは、正しい信頼ポリシーを持つ IAM ロールを自動的に作成し、AWSResilienceHubV2AssessmentExecutionPolicy管理ポリシーをアタッチします。

  • 既存のサービスロールを使用する – ロールが既に設定されている場合、またはコンソールの外部でロールを作成する場合は、既存のサービスロールを使用するを選択します。次に、リストからロールを選択し、そのロールに必要な信頼ポリシーとアクセス許可が以下で説明されていることを確認します。

ロールを手動で作成する

ロールを手動で作成するには、IAM コンソールを開きます。カスタム信頼ポリシーを選択し、次のような信頼ポリシーを使用します。

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

アクセス許可については、 AWSResilienceHubV2AssessmentExecutionPolicy管理ポリシーをアタッチします。耐障害性テストを使用する場合は、 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" } ] }

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