本頁說明如何啟用 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_ADMIN
和NET_RAW
安全內容容量。如果不確定容器是否具有這些內容,請諮詢您的安全團隊。 - AWS STS 權杖的效期為一小時。EC2 中繼資料中的角色權杖最多可使用 24 小時。這項資訊不會影響模擬器的使用,但您可能需要在安全稽核期間提供這項資訊。
- IMDS 模擬器只會模擬 IMDSv1 回應。不支援 IMDSv2。
啟用模擬器
如要啟用 IMDS 模擬器,請在 Pod 的中繼資料中加入標籤和註解。您也可以使用 Deployment、DaemonSet 或任何其他會建立 Pod 的資源啟用模擬器:
在 Pod 中新增下列標籤和值:
gkemulticloud.googleapis.com/aws-imds-emulator-enabled: "True"
這個標籤唯一可接受的值是
True
。其他所有值 (包括小寫t
的true
) 都會停用模擬器。將下列註解新增至 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