啟用 IMDS 模擬器

本頁說明如何啟用 IMDS 模擬器,模擬 AWS 執行個體中繼資料服務 (IMDS)。您可以將模擬器做為 Sidecar 執行,以便在 GKE on AWS 節點集區中執行舊版工作負載。如果舊版工作負載不直接支援 GKE 適用的工作負載身分聯盟,請使用這個模擬器存取 IMDS 資料。

限制

  • 叢集必須使用 Kubernetes 1.24 以上版本。
  • 舊版 GKE on AWS 不支援模擬器。
  • IMDS 模擬器伺服器只會處理憑證要求 (API_VERSION/meta-data/iam/security-credentials/)。所有其他中繼資料要求都會傳回 404 錯誤。
  • 側車部署作業需要 init 容器具備 NET_ADMINNET_RAW 安全內容容量。如果不確定容器是否具有這些內容,請諮詢您的安全團隊。
  • AWS STS 權杖的效期為一小時。EC2 中繼資料中的角色權杖最多可使用 24 小時。這項資訊不會影響模擬器的使用,但您可能需要在安全稽核期間提供這項資訊。
  • IMDS 模擬器只會模擬 IMDSv1 回應。不支援 IMDSv2。

啟用模擬器

如要啟用 IMDS 模擬器,請在 Pod 的中繼資料中加入標籤和註解。您也可以使用 Deployment、DaemonSet 或任何其他會建立 Pod 的資源啟用模擬器:

  1. 在 Pod 中新增下列標籤和值:

    gkemulticloud.googleapis.com/aws-imds-emulator-enabled: "True"
    

    這個標籤唯一可接受的值是 True。其他所有值 (包括小寫 ttrue) 都會停用模擬器。

  2. 將下列註解新增至 Pod:

    gkemulticloud.googleapis.com/aws-imds-emulator-role-arn: ARN_ROLE
    

    ARN_ROLE 替換為 Amazon 資源名稱 (ARN),指定您要讓資源擁有的角色。

範例

以下範例是啟用 IMDS 模擬器的 Pod:

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    gkemulticloud.googleapis.com/aws-imds-emulator-enabled: "True"
  annotations:
    gkemulticloud.googleapis.com/aws-imds-emulator-role-arn: "arn:aws:iam::123456789012:role/my-example-role"
spec:
 serviceAccountName: my-sa
 containers:
 - name: nginx
   image: nginx