KubernetesクラスタのIMDSの構成
Kubernetes Engine (OKE)を使用して作成したKubernetesクラスタ用にIMDSを構成する方法を確認します。
インスタンス・メタデータ・サービス(IMDS)は、Kubernetes Engineを使用して作成したクラスタ内の管理対象ノードをホストするコンピュート・インスタンスに関する情報を提供できます。インスタンス・メタデータ・サービスは、バージョン1とバージョン2の2つのバージョンで使用できます。IMDSv2は、IMDSv1と比較すると、メタデータ・リクエストのセキュリティを強化します。IMDSの詳細は、インスタンス・メタデータの取得を参照してください。
管理対象ノード・プールに指定したイメージによって、ノード・プール内の管理対象ノードをホストするコンピュート・インスタンスにIMDSv1またはIMDSv2(あるいはその両方)のエンドポイントがあるかどうかが決まります。イメージがIMDSv1とIMDSv2の両方をサポートしている場合、リクエストはデフォルトでIMDSv1とIMDSv2の両方のエンドポイントに許可されます。IMDSv2がサポートされている場合、IMDSv1エンドポイントへのリクエストを無効にし、IMDSv2エンドポイントへのリクエストのみを許可することで、セキュリティを強化することを強くお薦めします。
IMDSv1をサポートするイメージを使用するノード・プールを作成または更新するときに、管理対象ノードをホストしているコンピュート・インスタンスでIMDSv1エンドポイントを無効にするには、次を参照してください:
CLIを使用した、Kubernetesワーカー・ノードをホストするコンピュート・インスタンスのIMDSv1エンドポイントの無効化
CLIの使用の詳細は、コマンド・ライン・インタフェース(CLI)を参照してください。CLIコマンドで使用できるフラグおよびオプションの完全なリストは、コマンドライン・リファレンスを参照してください。
CLIを使用して、新しいノード・プールの作成時にKubernetesワーカー・ノードをホストするコンピュート・インスタンスでIMDSv1エンドポイントを無効にするには、oci ce node-pool create
コマンドの使用時に--node-metadata
パラメータの値として "areLegacyImdsEndpointsDisabled" : "true"
を指定します。例:
oci ce node-pool create \
--cluster-id ocid1.cluster.oc1.iad.aaaa______m4w \
--name my-idmsv2-only-nodepool \
--node-image-id ocid1.image.oc1.iad.aaaa______zpq \
--compartment-id ocid1.tenancy.oc1..aaa______q4a \
--kubernetes-version v1.24.1 \
--node-shape VM.Standard2.1 \
--placement-configs "[ { \"availabilityDomain\": \"PKGK:US-ASHBURN-AD-1\", \"subnetId\": \"ocid1.subnet.oc1.iad.aaaa______kfa\" } ]" \
--size 1 \
--region=us-ashburn-1 \
--node-metadata={"areLegacyImdsEndpointsDisabled" : "true"}
CLIを使用して、既存のノード・プールの更新時に新しい管理対象ノードをホストするコンピュート・インスタンスでIMDSv1エンドポイントを無効にするには、oci ce node-pool update
コマンドの使用時に--node-metadata
パラメータの値として "areLegacyImdsEndpointsDisabled" : "true"
を指定します。例:
oci ce node-pool update \
--node-pool-id ocid1.nodepool.oc1.iad.aaaaaaa______eya
--node-metadata={"areLegacyImdsEndpointsDisabled" : "true"}
既存のノード・プールを更新すると、これ以降、新しい管理対象ノードをホストしているコンピュート・インスタンスでIMDSv1エンドポイントが無効になります。ただし、既存の管理対象ノードをすでにホストしているコンピュート・インスタンスは更新されず、それらのIMDSv1エンドポイントは有効なままです。
ワーカー・ノード・プロパティに対する変更は、新しいワーカー・ノードにのみ適用されます。既存のワーカー・ノードのプロパティは変更できません。変更をすぐに有効にする場合は、必要な設定で新しいノード・プールを作成し、作業を元のノード・プールから新しいノード・プールにシフトすることを検討してください(「プロパティが更新されたワーカー・ノードの作成」を参照)。
Kubernetesワーカー・ノードをホストしているコンピュート・インスタンスでIMDSv1エンドポイントが無効になっていることの確認 🔗
Kubernetesワーカー・ノードをホストしているコンピュート・インスタンスでIMDSv1エンドポイントが無効になっていることを確認するには:
- SSHを使用してワーカー・ノードをホストするコンピュート・インスタンスに接続します。たとえば、
ssh opc@192.0.2.254
と入力します。詳細は、「SSHを使用した管理対象ノードへの接続」を参照してください。
- 次のコマンドを入力します。
curl -H 'Authorization: Bearer Oracle' http://169.254.169.254/opc/v1/instance/
コンピュート・インスタンスでIMDSv1エンドポイントが使用できない場合、HTTP 404 Not Foundエラーが返されます。