このページの改善にご協力ください
本ユーザーガイドの改善にご協力いただけませんか? すべてのページの右側のペインにある GitHub リンクで、このページの編集を選択してください。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。
クラスターにデプロイされた Kubernetes リソースを AWS Management Console で表示できます。Kubernetes リソースは、AWS CLIまたは eksctl
注記
AWS Management Console の [リソース] タブと [コンピューティング] タブの [ノード] セクションを表示するには、使用している IAM プリンシパルに特定の IAM と Kubernetes 許可が必要です。詳細については、「必要なアクセス許可」を参照してください。
-
Amazon EKS コンソール
を開きます。 -
[クラスター] のリストで、表示したい Kubernetes リソースを含んでいるクラスターを選択します。
-
[リソース] タブを選択します。
-
リソースを表示したい [リソースタイプ] グループを選択します。例えば、[ワークロード] などです。そのグループ内のリソースタイプのリストが表示されます。
-
リソースタイプを選択します。つまり、[ワークロード] グループ内の [デプロイ] などです。リソースタイプの説明、リソースタイプの詳細な説明の Kubernetes ドキュメントへのリンク、およびクラスターにデプロイされていてそのタイプのリソースのリストが表示されます。リストが空の場合、そのタイプのリソースはクラスターにデプロイされていません。
-
詳細情報を表示するには、そのリソースを選択します。次の例を試してください。
-
[ワークロード] グループを選択し、[デプロイメント] のリソースタイプを選択し、次に [CoreDNS] リソースを選択します。リソースを選択すると、デフォルトで [構造化ビュー] が表示されます。リソースタイプによっては、[構造化ビュー] に [ポッド] セクションが表示されます。このセクションでは、ワークロードによって管理される Pods が一覧表示されます。一覧表示されている任意の Pod を選択し、Pod の情報を表示できます。すべてのリソースタイプについて、[構造化ビュー] で情報が表示されるわけではありません。リソース表示画面で右上隅にある [raw ビュー] を選択すると、そのリソースについて Kubernetes API からの完全な JSON レスポンスが表示されます。
-
[クラスター] グループを選択してから、[ノード] リソースタイプを選択します。クラスター内のすべてのノードのリストが表示されます。ノードは、任意の Amazon EKS ノードタイプとなります。これはクラスターの [コンピューティング] () タブを選択したときに [ノード] セクションに表示されるのと同じリストです。リストからノードリソースを選択します。[構造化ビュー] では、[ポッド] セクションも表示されます。このセクションでは、ノード上で実行中のすべての Pods が表示されます。
-
必要なアクセス許可
AWS Management Console の [リソース] タブと [コンピューティング] タブの [ノード] セクションを表示するには、使用している IAM プリンシパルに特定の最小限の IAM と Kubernetes 許可が必要です。次のステップを実行して、IAM プリンシパルに必要な許可を割り当てます。
-
eks:AccessKubernetesApi
、および Kubernetes リソースを表示するために必要なその他の IAM アクセス許可が、使用している IAM プリンシパルに割り当てられていることを確認してください。IAM プリンシパルの許可を編集する方法の詳細については、「IAM ユーザーガイド」の「プリンシパルへのアクセスの制御」を参照してください。ロールのアクセス許可を編集する方法の詳細については、IAM ユーザーガイドの「ロールのアクセス許可ポリシーの変更 (コンソール)」を参照してください。次のポリシーの例には、アカウント内のすべてのクラスター内にある Kubernetes リソースを表示するために必要な、プリンシパルへの許可が含まれています。
111122223333
を自分の AWS アカウント ID に置き換えます。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:ListFargateProfiles", "eks:DescribeNodegroup", "eks:ListNodegroups", "eks:ListUpdates", "eks:AccessKubernetesApi", "eks:ListAddons", "eks:DescribeCluster", "eks:DescribeAddonVersions", "eks:ListClusters", "eks:ListIdentityProviderConfigs", "iam:ListRoles" ], "Resource": "*" }, { "Effect": "Allow", "Action": "ssm:GetParameter", "Resource": "arn:aws:ssm:*:111122223333:parameter/*" } ] }
接続されたクラスター内のノードを表示するには、Amazon EKS コネクタの IAM ロールがクラスター内のプリンシパルを偽装できる必要があります。このようにすることによって、Amazon EKS Connector を使用して Kubernetes クラスターを Amazon EKS マネジメントコンソールに接続し、プリンシパルを Kubernetes ユーザーにマップできるようになります。
-
Kubernetes リソースを表示するのに必要なアクセス許可を持つ Kubernetes
role
またはclusterrole
にバインドされている Kubernetesrolebinding
またはclusterrolebinding
を作成します。Kubernetes のロールとロールバインドの詳細については、「Kubernetes ドキュメント」の「RBAC 認可を使用する」を参照してください。次のマニフェストのいずれかをクラスターに適用して、必要な Kubernetes アクセス許可を持つ role
およびrolebinding
またはclusterrole
およびclusterrolebinding
を作成できます。- すべての名前空間の Kubernetes リソースを表示する
-
-
ファイル内のグループ名は
eks-console-dashboard-full-access-group
です。次のコマンドを使用して、クラスターにマニフェストを適用します。kubectl apply -f https://s3.us-west-2.amazonaws.com/amazon-eks/docs/eks-console-full-access.yaml
-
- 特定の名前空間の Kubernetes リソースを表示する
-
-
このファイルの名前空間は
default
です。ファイル内のグループ名はeks-console-dashboard-restricted-access-group
です。次のコマンドを使用して、クラスターにマニフェストを適用します。kubectl apply -f https://s3.us-west-2.amazonaws.com/amazon-eks/docs/eks-console-restricted-access.yaml
ファイル内の Kubernetes グループ名、名前空間、アクセス許可、またはその他の設定を変更する必要がある場合は、ファイルをダウンロードして編集してからクラスターに適用します。
-
次のいずれかのコマンドを使って、ファイルをダウンロードします。
curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/docs/eks-console-full-access.yaml
curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/docs/eks-console-restricted-access.yaml
-
必要に応じてファイルを編集します。
-
次のコマンドのいずれかを使用して、クラスターにマニフェストを適用します。
kubectl apply -f eks-console-full-access.yaml
kubectl apply -f eks-console-restricted-access.yaml
-
-
-
aws-auth
ConfigMap
の Kubernetes ユーザーまたはグループに IAM プリンシパルをマッピングします。eksctl
のようなツールによりConfigMap
を更新することができます。あるいは、手動で編集しての更新も可能です。重要
ConfigMap
の編集には、eksctl
や、その他のツールを使用することをお勧めします。使用できる他のツールについては、Amazon EKS ベストプラクティスガイドの「ツールを使用して aws-authConfigMap を変更する」を参照してください。 aws-auth
ConfigMap
の形式が不適切な場合、クラスターへのアクセスが失われる場合があります。
eksctl で編集する
-
デバイスまたは AWS CloudShell にインストールされている
eksctl
コマンドラインツールのバージョン0.199.0
以降が必要です。eksctl
をインストールまたはアップグレードするには、eksctl
ドキュメントの「インストール」を参照してください。 -
ConfigMap
に現在のマッピングを表示します。my-cluster
の部分は、自分のクラスター名に置き換えます。region-code
を、クラスターのある AWS リージョンに置き換えます。eksctl get iamidentitymapping --cluster my-cluster --region=region-code
出力例は次のとおりです。
ARN USERNAME GROUPS ACCOUNT arn:aws:iam::111122223333:role/eksctl-my-cluster-my-nodegroup-NodeInstanceRole-1XLS7754U3ZPA system:node:{{EC2PrivateDNSName}} system:bootstrappers,system:nodes
-
ロールのマッピングを追加します。この例では、最初のステップで
my-console-viewer-role
という名前のロールに IAM アクセス許可をアタッチしたと仮定します。&ExampleAWSAccountNo1
は、ご自分のアカウント ID に置き換えます。eksctl create iamidentitymapping \ --cluster my-cluster \ --region=region-code \ --arn arn:aws:iam::111122223333:role/my-console-viewer-role \ --group eks-console-dashboard-full-access-group \ --no-duplicate-arns
重要
ロールの ARN には、
role/my-team/developers/my-role
などのパスを含めることはできません。ロールの ARN は、arn:aws:iam::
のような形式にする必要があります。この例では、111122223333
:role/my-role
my-team/developers/
を削除する必要があります。出力例は次のとおりです。
[...] 2022-05-09 14:51:20 [ℹ] adding identity "arn:aws:iam::111122223333:role/my-console-viewer-role" to auth ConfigMap
-
ユーザーのマッピングを追加します。IAM のベストプラクティスでは、ユーザーではなくロールに許可を付与することが推奨されています。この例では、最初のステップで
my-user
という名前のユーザーに IAM アクセス許可をアタッチしたと仮定します。&ExampleAWSAccountNo1
は、ご自分のアカウント ID に置き換えます。eksctl create iamidentitymapping \ --cluster my-cluster \ --region=region-code \ --arn arn:aws:iam::111122223333:user/my-user \ --group eks-console-dashboard-restricted-access-group \ --no-duplicate-arns
出力例は次のとおりです。
[...] 2022-05-09 14:53:48 [ℹ] adding identity "arn:aws:iam::111122223333:user/my-user" to auth ConfigMap
-
ConfigMap
のマッピングを再度表示します。eksctl get iamidentitymapping --cluster my-cluster --region=region-code
出力例は次のとおりです。
ARN USERNAME GROUPS ACCOUNT arn:aws:iam::111122223333:role/eksctl-my-cluster-my-nodegroup-NodeInstanceRole-1XLS7754U3ZPA system:node:{{EC2PrivateDNSName}} system:bootstrappers,system:nodes arn:aws:iam::111122223333:role/my-console-viewer-role eks-console-dashboard-full-access-group arn:aws:iam::111122223333:user/my-user eks-console-dashboard-restricted-access-group
ConfigMap を手動で編集する
aws-auth
ConfigMap
にユーザまたはロールを追加する方法の詳細については、「Amazon EKS クラスターに IAM プリンシパルを追加する」を参照してください。
-
編集する
aws-auth
ConfigMap
を開きます。kubectl edit -n kube-system configmap/aws-auth
-
aws-auth
ConfigMap
にマッピングを追加しますが、既存のマッピングを置き換えないでください。次の例では、最初のステップで追加した許可を持つ IAM プリンシパルと、前のステップで作成した Kubernetes グループの間のマッピングを追加します。-
my-console-viewer-role
ロールとeks-console-dashboard-full-access-group
。 -
my-user
ユーザーとeks-console-dashboard-restricted-access-group
。これらの例では、最初のステップで
my-console-viewer-role
という名前のロール、およびmy-user
という名前のユーザーに、IAM アクセス許可をアタッチしたと仮定します。111122223333
を自分の AWS アカウント ID に置き換えます。apiVersion: v1 data: mapRoles: | - groups: - eks-console-dashboard-full-access-group rolearn: arn:aws:iam::111122223333:role/my-console-viewer-role username: my-console-viewer-role mapUsers: | - groups: - eks-console-dashboard-restricted-access-group userarn: arn:aws:iam::111122223333:user/my-user username: my-user
重要
ロールの ARN には、
role/my-team/developers/my-console-viewer-role
などのパスを含めることはできません。ロールの ARN は、arn:aws:iam::
のような形式にする必要があります。この例では、111122223333
:role/my-console-viewer-role
my-team/developers/
を削除する必要があります。
-
-
ファイルを保存し、テキストエディタを終了します。