AWS マネジメントコンソール に Kubernetes リソースを表示する - Amazon EKS

このページの改善にご協力ください

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。

AWS マネジメントコンソール に Kubernetes リソースを表示する

クラスターにデプロイされた Kubernetes リソースを AWS マネジメントコンソール で表示できます。Kubernetes リソースは、AWS CLIまたは eksctl で表示することはできません。コマンドラインツールを使用して Kubernetes リソースを表示するには、kubectl を使用します。

注記

AWS マネジメントコンソール の [リソース] タブと [コンピューティング] タブの [ノード] セクションを表示するには、使用している IAM プリンシパルに特定の IAM と Kubernetes 許可が必要です。詳細については、「必要なアクセス許可」を参照してください。

  1. Amazon EKS コンソールを開きます。

  2. [Clusters] (クラスター) のリストで、表示したい Kubernetes リソースを含んでいるクラスターを選択します。

  3. [リソース] タブを選択します。

  4. リソースを表示したい [リソースタイプ] グループを選択します。例えば、[ワークロード] などです。そのグループ内のリソースタイプのリストが表示されます。

  5. リソースタイプを選択します。例えば、[Workloads] (ワークロード) グループ内の [Deployments] (デプロイメント) などです。リソースタイプの簡単な説明、リソースタイプの詳細な説明が参照できる Kubernetes ドキュメントへのリンク、およびクラスターにデプロイされていてそのタイプに分類されるリソースのリストが表示されます。リストが空の場合、そのタイプのリソースはクラスターにデプロイされていません。

  6. 詳細情報を表示するには、そのリソースを選択します。次の例を試してください。

    • [ワークロード] グループを選択し、[デプロイメント] のリソースタイプを選択し、次に [CoreDNS] リソースを選択します。リソースを選択すると、デフォルトで [構造化ビュー] が表示されます。リソースタイプによっては、[構造化ビュー][ポッド] セクションが表示されます。このセクションでは、ワークロードによって管理される Pod が一覧表示されます。一覧表示されている任意の Pod を選択し、Pod の情報を表示できます。すべてのリソースタイプについて、[Structured View] (構造化ビュー) で情報が表示されるわけではありません。リソース表示画面で右上隅にある [Raw view] (raw ビュー) を選択すると、そのリソースについて Kubernetes API からの完全な JSON レスポンスが表示されます。

    • [Cluster] (クラスター) グループを選択してから、[Nodes] (ノード) リソースタイプを選択します。クラスター内のすべてのノードのリストが表示されます。ノードは、任意の Amazon EKS ノードタイプとなります。これはクラスターの [コンピューティング] () タブを選択したときに [ノード] セクションに表示されるのと同じリストです。リストからノードリソースを選択します。[構造化ビュー] では、[ポッド] セクションも表示されます。このセクションでは、ノード上で実行中のすべての Pod が表示されます。

必要なアクセス許可

AWS マネジメントコンソール の [リソース] タブと [コンピューティング] タブの [ノード] セクションを表示するには、使用している IAM プリンシパルに特定の最小限の IAM と Kubernetes 許可が必要です。IAM と Kubernetes の両方の RBAC アクセス許可を正しく設定する必要があります。次のステップを実行して、IAM プリンシパルに必要な許可を割り当てます。

  1. eks:AccessKubernetesApi、および Kubernete リソースを表示するために必要なその他の 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 ユーザーにマッピングできます。

  2. EKS アクセスエントリを使用して Kubernetes RBAC アクセス許可を設定します。

    EKS アクセスエントリとは

    EKS アクセスエントリは、IAM プリンシパル (ユーザーとロール) に Kubernetes クラスターへのアクセス許可を付与する効率的な方法です。アクセスエントリを使用することで、Kubernetes RBAC リソースや aws-auth ConfigMap を手動で管理する代わりに、AWS が提供するマネージドポリシーを使用して IAM と Kubernetes アクセス許可間のマッピングを自動的に処理することができます。アクセスエントリの詳細情報については「EKS アクセスエントリを使用して Kubernetes へのアクセスを IAM ユーザーに許可する」を参照してください。利用可能なアクセスポリシーとそのアクセス許可の詳細については、「アクセスポリシーアクセス許可を確認する」を参照してください。

    Kubernetes アクセス許可をアタッチして、次の 2 つの方法でエントリにアクセスできます:

    • アクセスポリシーを使用する: アクセスポリシーは、AWS によって管理される事前定義された Kubernetes アクセス許可テンプレートです。これらは、一般的なユースケース用の標準化されたアクセス許可セットを提供します。

    • Kubernetes グループを参照する: IAM アイデンティティを Kubernetes グループに関連付けると、グループのアクセス許可を付与する Kubernetes リソースを作成できます。詳細についてはKubernetes ドキュメントの「RBAC 認可を使用する」を参照してください。

      1. AWS CLI を使用して IAM プリンシパルのアクセスエントリを作成します。マイクラスター の部分は自分のクラスター名に置き換えます。111122223333 は、ご自分のアカウント ID に置き換えます。

        aws eks create-access-entry \ --cluster-name my-cluster \ --principal-arn arn:aws:iam::111122223333:role/my-console-viewer-role

        出力例は次のとおりです。

        { "accessEntry": { "clusterName": "my-cluster", "principalArn": "arn:aws:iam::111122223333:role/my-console-viewer-role", "kubernetesGroups": [], "accessEntryArn": "arn:aws:eks:region-code:111122223333:access-entry/my-cluster/role/111122223333/my-console-viewer-role/abc12345-1234-1234-1234-123456789012", "createdAt": "2024-03-15T10:30:45.123000-07:00", "modifiedAt": "2024-03-15T10:30:45.123000-07:00", "tags": {}, "username": "arn:aws:iam::111122223333:role/my-console-viewer-role", "type": "STANDARD" } }
      2. ポリシーをアクセスエントリに関連付けます。Kubernetes リソースを表示するには、AmazonEKSViewPolicy を使用します。

        aws eks associate-access-policy \ --cluster-name my-cluster \ --principal-arn arn:aws:iam::111122223333:role/my-console-viewer-role \ --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSViewPolicy \ --access-scope type=cluster

        出力例は次のとおりです。

        { "clusterName": "my-cluster", "principalArn": "arn:aws:iam::111122223333:role/my-console-viewer-role", "associatedAt": "2024-03-15T10:31:15.456000-07:00" }

        名前空間固有のアクセスでは、ポリシー範囲を特定の名前空間に限定できます。

        aws eks associate-access-policy \ --cluster-name my-cluster \ --principal-arn arn:aws:iam::111122223333:role/my-console-viewer-role \ --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSViewPolicy \ --access-scope type=namespace,namespaces=default,kube-system
      3. アクセスエントリが正常に作成されたことを確認します。

        aws eks describe-access-entry \ --cluster-name my-cluster \ --principal-arn arn:aws:iam::111122223333:role/my-console-viewer-role
      4. 関連付けられたポリシーを一覧表示して、ポリシーの関連付けを確認します。

        aws eks list-associated-access-policies \ --cluster-name my-cluster \ --principal-arn arn:aws:iam::111122223333:role/my-console-viewer-role

        出力例は次のとおりです。

        { "associatedAccessPolicies": [ { "policyArn": "arn:aws:eks::aws:cluster-access-policy/AmazonEKSViewPolicy", "accessScope": { "type": "cluster" }, "associatedAt": "2024-03-15T10:31:15.456000-07:00", "modifiedAt": "2024-03-15T10:31:15.456000-07:00" } ] }

CloudTrail の可視性

Kubernetes リソースを表示すると、CloudTrail ログに次のオペレーション名が表示されます。

  • AccessKubernetesApi – リソースの読み取りまたは表示時

この CloudTrail イベントは、Kubernetes リソースへの読み取りアクセスの監査証跡を提供します。

注記

このオペレーション名は、監査目的でのみ CloudTrail ログに表示されます。これは IAM アクションではなく、IAM ポリシーステートメントでは使用できません。IAM ポリシーを使用して Kubernetes リソースへの読み取りアクセスを制御するには、「必要なアクセス許可」セクションに示すように eks:AccessKubernetesApi アクセス許可を使用します。