翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 クラスターと同じアカウントで
AwsResilienceHubAssessmentEKSAccessRole
IAM ロールを作成する必要があります。その後、この IAM ロールは Amazon EKS クラスターにアクセスする際に使用されます。アプリケーションのインポートと評価中に、 AWS Resilience Hub は IAM ロールを使用して Amazon EKS クラスター内のリソースにアクセスします。このロールは Amazon EKS クラスターと同じアカウントで作成する必要があり、Amazon EKS クラスターの評価に必要なアクセス許可を含む Kubernetes グループ AWS Resilience Hub でマッピングされます。
Amazon EKS クラスターが AWS Resilience Hub 呼び出し元のアカウントと同じアカウントにある場合は、次の IAM 信頼ポリシーを使用してロールを作成する必要があります。この IAM 信頼ポリシーでは、
caller_IAM_role
は現在のアカウントで の APIs を呼び出すために使用されます AWS Resilience Hub。注記
caller_IAM_role
は、 AWS ユーザーアカウントに関連付けられているロールです。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::eks_cluster_account_id:role/caller_IAM_role" }, "Action": "sts:AssumeRole" } ] }
Amazon EKS クラスターがクロスアカウント ( AWS Resilience Hub 呼び出し元のアカウントとは異なるアカウント) にある場合は、次の
AwsResilienceHubAssessmentEKSAccessRole
IAM 信頼ポリシーを使用して IAM ロールを作成する必要があります。注記
前提条件として、 AWS Resilience Hub ユーザーのアカウントとは異なるアカウントにデプロイされている Amazon EKS クラスターにアクセスするには、マルチアカウントアクセスを設定する必要があります。詳細については、以下を参照してください。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::eks_cluster_account_id:role/AwsResilienceHubExecutorRole" }, "Action": "sts:AssumeRole" } ] }
-
AWS Resilience Hub アプリケーションの
ClusterRole
およびClusterRoleBinding
(またはRoleBinding
) ロールを作成します。ClusterRole
と を作成するとClusterRoleBinding
、Amazon EKS クラスター内の特定の名前空間の一部であるリソースを分析および評価 AWS Resilience Hub するために必要な読み取り専用アクセス許可が に付与されます。AWS Resilience Hub では、次のいずれかを完了することで、障害耐性評価を生成するための名前空間へのアクセスを制限できます。
-
すべての名前空間の読み取りアクセス権を AWS Resilience Hub アプリケーションに付与します。
が Amazon EKS クラスター内のすべての名前空間のリソースの耐障害性を評価する AWS Resilience Hub には、次の
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 verbs: - get - list - apiGroups: - karpenter.k8s.aws resources: - awsnodetemplates 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 クラスター内の特定の名前空間に関連付けられていないクラスタースコープのリソースを評価するために必要なアクセス許可を指定します。 AWS Resilience Hub は、Amazon EKS クラスターのクラスタースコープのリソース (ノードなど) にアクセスしてアプリケーションの耐障害性を評価するためのアクセス許可を必要とします。
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 verbs: - get - list - apiGroups: - karpenter.k8s.aws resources: - awsnodetemplates verbs: - get - list --- EOF
-
-
RoleBinding
role – このロールは、特定の名前空間内のリソースにアクセスするために必要なアクセス許可 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
-
ClusterRoleBinding
role – このロールは、クラスタースコープのリソースにアクセスするために必要なアクセス許可 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-auth
ConfigMap
を作成できます。-
eksctl
を使用する次のコマンドを実行して
aws-auth
ConfigMap
を更新します。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-auth
ConfigMap
を手動で編集できます。次のコマンドを使用して、aws-auth
ConfigMap
を編集します。kubectl edit -n kube-system configmap/aws-auth
mapRoles
セクションは次のパラメータで構成されます。-
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
-
-