

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

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

# AWS マネジメントコンソール に Kubernetes リソースを表示する
<a name="view-kubernetes-resources"></a>

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

**注記**  
AWS マネジメントコンソール の **[リソース]** タブと **[コンピューティング]** タブの **[ノード]** セクションを表示するには、使用している [IAM プリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)に特定の IAM と Kubernetes 許可が必要です。詳細については、「[必要なアクセス許可](#view-kubernetes-resources-permissions)」を参照してください。

1. [Amazon EKS コンソール](https://console.aws.amazon.com/eks/home#/clusters)を開きます。

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

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

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

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

1. 詳細情報を表示するには、そのリソースを選択します。次の例を試してください。
   + **[ワークロード]** グループを選択し、**[デプロイメント]** のリソースタイプを選択し、次に **[CoreDNS]** リソースを選択します。リソースを選択すると、デフォルトで **[構造化ビュー]** が表示されます。リソースタイプによっては、**[構造化ビュー]** に **[ポッド]** セクションが表示されます。このセクションでは、ワークロードによって管理される Pod が一覧表示されます。一覧表示されている任意の Pod を選択し、Pod の情報を表示できます。すべてのリソースタイプについて、**[Structured View]** (構造化ビュー) で情報が表示されるわけではありません。リソース表示画面で右上隅にある **[Raw view]** (raw ビュー) を選択すると、そのリソースについて Kubernetes API からの完全な JSON レスポンスが表示されます。
   + **[Cluster]** (クラスター) グループを選択してから、**[Nodes]** (ノード) リソースタイプを選択します。クラスター内のすべてのノードのリストが表示されます。ノードは、任意の [Amazon EKS ノードタイプ](eks-compute.md)となります。これはクラスターの **[コンピューティング]** () タブを選択したときに **[ノード]** セクションに表示されるのと同じリストです。リストからノードリソースを選択します。**[構造化ビュー]** では、**[ポッド]** セクションも表示されます。このセクションでは、ノード上で実行中のすべての Pod が表示されます。

## 必要なアクセス許可
<a name="view-kubernetes-resources-permissions"></a>

AWS マネジメントコンソール の **[リソース]** タブと **[コンピューティング]** タブの **[ノード]** セクションを表示するには、使用している [IAM プリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)に特定の最小限の IAM と Kubernetes 許可が必要です。IAM と Kubernetes の両方の RBAC アクセス許可を正しく設定する必要があります。次のステップを実行して、IAM プリンシパルに必要な許可を割り当てます。

1. `eks:AccessKubernetesApi`、および Kubernete リソースを表示するために必要なその他の IAM アクセス許可が、使用している IAM プリンシパルに割り当てられていることを確認してください。IAM プリンシパルの許可を編集する方法の詳細については、「IAM ユーザーガイド」の「[プリンシパルへのアクセスの制御](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_controlling.html#access_controlling-principals)」を参照してください。ロールのアクセス許可を編集する方法の詳細については、IAM ユーザーガイドの「[ロールのアクセス許可ポリシーの変更 (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-modify_permissions-policy)」を参照してください。

   次のポリシーの例には、アカウント内のすべてのクラスター内にある 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/*"
           }
       ]
   }
   ```

   [接続されたクラスター](eks-connector.md)内のノードを表示するには、[Amazon EKS コネクタの IAM ロール](connector-iam-role.md)がクラスター内のプリンシパルを偽装できる必要があります。これにより、[Amazon EKS Connector](eks-connector.md) はプリンシパルを Kubernetes ユーザーにマッピングできます。

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

    **EKS アクセスエントリとは** 

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

   Kubernetes アクセス許可をアタッチして、次の 2 つの方法でエントリにアクセスできます：
   +  **アクセスポリシーを使用する:** アクセスポリシーは、AWS によって管理される事前定義された Kubernetes アクセス許可テンプレートです。これらは、一般的なユースケース用の標準化されたアクセス許可セットを提供します。
   +  **Kubernetes グループを参照する:** IAM アイデンティティを Kubernetes グループに関連付けると、グループのアクセス許可を付与する Kubernetes リソースを作成できます。詳細についてはKubernetes ドキュメントの「[RBAC 認可を使用する](https://kubernetes.io/docs/reference/access-authn-authz/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"
            }
        }
        ```

     1. ポリシーをアクセスエントリに関連付けます。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
        ```

     1. アクセスエントリが正常に作成されたことを確認します。

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

     1. 関連付けられたポリシーを一覧表示して、ポリシーの関連付けを確認します。

        ```
        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 の可視性
<a name="cloudtrail-visibility"></a>

Kubernetes リソースを表示すると、CloudTrail ログに次のオペレーション名が表示されます。
+  `AccessKubernetesApi` – リソースの読み取りまたは表示時

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

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