翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon EKS クラスター内のリソース AWS Resilience Hub へのアクセスの許可
AWS Resilience Hub では、必要なアクセス許可を設定している限り、Amazon EKS クラスターにあるリソースにアクセスできます。
Amazon EKS クラスター内のリソースを検出して評価 AWS Resilience Hub するために必要なアクセス許可を に付与するには
-
Amazon EKS クラスターにアクセスするための IAM ロールを設定します。
ロールベースのアクセスを使用してアプリケーションを設定した場合は、このステップをスキップしてステップ 2 に進み、アプリケーションの作成に使用したロールを使用できます。 AWS Resilience Hub でこの IAM ロールを使用する方法については、AWS Resilience Hub と IAM の連携方法 を参照してください。
現在の IAM ユーザー権限を使用してアプリケーションを設定した場合は、Amazon EKS クラスターと同じアカウントで
AwsResilienceHubAssessmentEKSAccessRoleIAM ロールを作成する必要があります。その後、この IAM ロールは Amazon EKS クラスターにアクセスする際に使用されます。アプリケーションのインポートと評価中に、 は IAM ロール AWS Resilience Hub を使用して Amazon EKS クラスター内のリソースにアクセスします。このロールは Amazon EKS クラスターと同じアカウントで作成する必要があり、Amazon EKS クラスター AWS Resilience Hub を評価するために が必要とするアクセス許可を含む Kubernetes グループにマッピングされます。
Amazon EKS クラスターが AWS Resilience Hub 呼び出し元のアカウントと同じアカウントにある場合は、次の IAM 信頼ポリシーを使用してロールを作成する必要があります。この IAM 信頼ポリシーでは、
caller_IAM_roleは現在のアカウントで APIs を呼び出すために使用されます AWS Resilience Hub。注記
caller_IAM_roleは、 AWS ユーザーアカウントに関連付けられているロールです。Amazon EKS クラスターがクロスアカウント ( AWS Resilience Hub 呼び出し元のアカウントとは異なるアカウント) にある場合は、次の
AwsResilienceHubAssessmentEKSAccessRoleIAM 信頼ポリシーを使用して IAM ロールを作成する必要があります。注記
前提条件として、 AWS Resilience Hub ユーザーのアカウントとは異なるアカウントにデプロイされている Amazon EKS クラスターにアクセスするには、マルチアカウントアクセスを設定する必要があります。詳細については、以下を参照してください。
-
AWS Resilience Hub アプリケーションの
ClusterRoleおよびClusterRoleBinding(またはRoleBinding) ロールを作成します。ClusterRoleと を作成するとClusterRoleBinding、Amazon EKS クラスター内の特定の名前空間の一部であるリソースを分析および評価 AWS Resilience Hub するために必要な読み取り専用アクセス許可が に付与されます。AWS Resilience Hub では、次のいずれかを完了することで、障害耐性評価を生成するための名前空間へのアクセスを制限できます。
-
すべての名前空間の読み取りアクセス権を AWS Resilience Hub アプリケーションに付与します。
AWS Resilience Hub が Amazon EKS クラスター内のすべての名前空間のリソースの耐障害性を評価するには、次の
ClusterRoleと を作成する必要がありますClusterRoleBinding。-
resilience-hub-eks-access-cluster-role(ClusterRole) – Amazon EKS クラスターを評価するために AWS Resilience Hub が必要とするアクセス許可を定義します。 -
resilience-hub-eks-access-cluster-role-binding(ClusterRoleBinding) — Amazon EKS クラスターにresilience-hub-eks-access-groupという名前のグループを定義し、そのユーザーに AWS Resilience Hubで障害耐性評価を実行するために必要なアクセス権限を付与します。
すべての名前空間の読み取りアクセスを AWS 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 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 -
-
特定の名前空間 AWS Resilience Hub を読み取るためのアクセス許可を付与します。
を使用して、特定の名前空間セット内のリソースへのアクセス AWS Resilience Hub を制限できます
RoleBinding。これを実現するには、次のロールを作成する必要があります。-
ClusterRole– AWS Resilience Hub が Amazon EKS クラスター内の特定の名前空間のリソースにアクセスし、その耐障害性を評価するには、次のClusterRoleロールを作成する必要があります。-
resilience-hub-eks-access-cluster-role— 特定の名前空間内のリソースを評価するために必要な権限を指定します。 -
resilience-hub-eks-access-global-cluster-role– Amazon EKS クラスター内の特定の名前空間に関連付けられていないクラスタースコープのリソースを評価するために必要なアクセス許可を指定します。 は、Amazon EKS クラスターのクラスタースコープのリソース (ノードなど) にアクセスしてアプリケーションの耐障害性を評価するためのアクセス許可 AWS Resilience Hub を必要とします。
ClusterRoleロールを作成するためのテンプレートは次のとおりです。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 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 --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: resilience-hub-eks-access-global-cluster-role rules: - apiGroups: - "" resources: - nodes verbs: - get - list - apiGroups: - karpenter.sh resources: - provisioners - nodepools verbs: - get - list - apiGroups: - karpenter.k8s.aws resources: - awsnodetemplates - ec2nodeclasses verbs: - get - list --- EOF -
-
RoleBindingrole – このロールは、 が特定の名前空間内のリソースにアクセス AWS Resilience Hub するために必要なアクセス許可を付与します。つまり、 が特定の名前空間内のリソースにアクセス AWS Resilience Hub できるようにするには、各名前空間にRoleBindingロールを作成する必要があります。注記
ClusterAutoscalerを自動スケーリングに使用する場合は、kube-systemに追加でRoleBindingを作成する必要があります。これは、kube-system名前空間の一部であるClusterAutoscalerを評価するために必要です。これにより、Amazon EKS クラスターの評価中に
kube-system名前空間内のリソースを評価する AWS Resilience Hub ために必要なアクセス許可を付与します。RoleBindingロールを作成するためのテンプレートは次のとおりです。cat << EOF | kubectl apply -f - apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: resilience-hub-eks-access-cluster-role-binding namespace: <namespace> 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 -
ClusterRoleBindingrole – このロールは、 がクラスタースコープのリソースにアクセス AWS Resilience Hub するために必要なアクセス許可を付与します。ClusterRoleBindingロールを作成するためのテンプレートは次のとおりです。cat << EOF | kubectl apply -f - --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: resilience-hub-eks-access-global-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-global-cluster-role apiGroup: rbac.authorization.k8s.io --- EOF
-
-
-
aws-auth ConfigMapを更新して、Amazon EKS クラスターへのアクセスに使用される IAM ロールでresilience-hub-eks-access-groupをマップします。このステップでは、ステップ 1 で使用した IAM ロールとステップ 2 で作成した Kubernetes グループとのマッピングを作成します。このマッピングは、Amazon EKS クラスター内のリソースにアクセスするためのアクセス権限を IAM ロールに付与します。
注記
-
ROLE-NAMEはAmazon EKS クラスターへのアクセスに使用される IAM ロールを指します。-
アプリケーションがロールベースのアクセスを使用するように設定されている場合、ロールはアプリケーションの作成 AWS Resilience Hub 時に渡される呼び出しロールまたはセカンダリアカウントロールのいずれかである必要があります。
-
アプリケーションがリソースへのアクセスに、現在の IAM ユーザーを使用するように構成されている場合、それは
AwsResilienceHubAssessmentEKSAccessRoleである必要があります。
-
-
ACCOUNT-IDは Amazon EKS クラスターの AWS アカウント ID である必要があります。
次のいずれかの方法で
aws-authConfigMapを作成できます。-
eksctlの使用次のコマンドを実行して
aws-authConfigMapを更新します。eksctl create iamidentitymapping \ --cluster <cluster-name> \ --region=<region-code> \ --arn arn:aws:iam::<ACCOUNT-ID>:role/<ROLE-NAME>\ --group resilience-hub-eks-access-group \ --username AwsResilienceHubAssessmentEKSAccessRole -
データ下の
ConfigMapのmapRolesセクションに IAM ロールの詳細を追加することで、aws-authConfigMapを手動で編集できます。次のコマンドを使用して、aws-authConfigMapを編集します。kubectl edit -n kube-system configmap/aws-authmapRolesセクションは次のパラメータで構成されます。-
rolearn- 追加される IAM ロールの Amazon リソースネーム (ARN)。-
ARN 構文 —
arn:aws:iam::<ACCOUNT-ID>:role/<ROLE-NAME>。
-
-
username— IAM ロールAwsResilienceHubAssessmentEKSAccessRoleにマップされる Kubernetes 内のユーザー名。 -
groups— グループ名はステップ 2 (resilience-hub-eks-access-group) で作成したグループ名と一致する必要があります。
注記
mapRolesセクションが存在しない場合は、このセクションを手動で追加する必要があります。以下のテンプレートを使用して IAM ロールの詳細をデータ下の
ConfigMapのmapRolesセクションに追加します。- groups: - resilience-hub-eks-access-group rolearn: arn:aws:iam::<ACCOUNT-ID>:role/<ROLE-NAME> username: AwsResilienceHubAssessmentEKSAccessRole -
-