发送反馈
AWSCluster
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
本主题介绍 AWSCluster 自定义资源定义的配置选项。
定义 AWSCluster
AWSCluster
是一种由 GKE on AWS 定义的 Kubernetes 自定义资源。此资源表示 GKE on AWS 控制平面 。
如需基于此模板创建集群,请复制以下 YAML 并完成 spec.networking
和 spec.controlPlane
字段定义中定义的突出显示值。然后,将资源清单应用于您的管理服务。
apiVersion : multicloud.cluster.gke.io/v1
kind : AWSCluster
metadata :
name : CLUSTER_NAME
spec :
region : AWS_REGION
networking :
vpcID : VPC_ID
podAddressCIDRBlocks : POD_ADDRESS_CIDR_BLOCKS
serviceAddressCIDRBlocks : SERVICE_ADDRESS_CIDR_BLOCKS
serviceLoadBalancerSubnetIDs : SERVICE_LOAD_BALANCER_SUBNETS
controlPlane :
version : GKE_VERSION # Latest version is 1.25.5-gke.2100
instanceType : AWS_INSTANCE_TYPE
keyName : SSH_KEY_NAME
subnetIDs :
- CONTROL_PLANE_SUBNET_IDS
securityGroupIDs :
- CONTROL_PLANE_SECURITY_GROUPS
iamInstanceProfile : CONTROL_PLANE_IAM_ROLE
databaseEncryption :
kmsKeyARN : ARN_OF_KMS_KEY
hub :
membershipName : ANTHOS_CONNECT_NAME
cloudOperations : # Optional
projectID : YOUR_PROJECT
location : GCP_LOCATION
enableLogging : ENABLE_LOGGING
enableMonitoring : ENABLE_MONITORING
tags :
TAG_KEY : TAG_VALUE
proxySecretName : PROXY_SECRET_NAME
workloadIdentity :
oidcDiscoveryGCSBucket : WORKLOAD_IDENTITY_BUCKET
rootVolume : # Optional
sizeGiB : ROOT_VOLUME_SIZE
volumeType : ROOT_VOLUME_TYPE
iops : ROOT_VOLUME_IOPS
kmsKeyARN : ROOT_VOLUME_KEY
etcd : # Optional
mainVolume :
sizeGiB : ETCD_VOLUME_SIZE
volumeType : ETCD_VOLUME_TYPE
iops : ETCD_VOLUME_IOPS
kmsKeyARN : ETCD_VOLUME_KEY
authentication :
awsIAM :
adminIdentityARNs : ADMIN_IAM_ARN
oidc : # Optional
- certificateAuthorityData : CERTIFICATE_STRING
clientID : CLIENT_ID
clientSecret : CLIENT_SECRET
extraParams : EXTRA_PARAMS
groupsClaim : GROUPS_CLAIM
groupPrefix : GROUP_PREFIX
issuerURI : ISSUER_URL
kubectlRedirectURI : KUBECTL_REDIRECT_URL
scopes : SCOPES
userClaim : USER_CLAIM
userPrefix : USER_PREFIX
以下部分介绍了 spec
下的子字段。
spec.networking
此对象定义集群范围的网络配置。
名称
说明
类型
示例
必需
vpcID
集群在其中运行的 VPC 的 ID。用户集群的控制平面和节点池在单个 VPC 中运行。
string
vpc-0814934042d983118
是
podAddressCIDRBlocks
集群的 pod 使用的 IPv4 地址范围。目前仅支持单个范围。 此范围不得与从您的网络访问的任何子网重叠。您可以放心地在多个不同的 AWSCluster 对象中使用相同的范围。
list(string)
[10.1.0.0/16]
是
serviceAddressCIDRBlocks
集群的服务使用的 IPv4 地址范围。目前仅支持单个范围。 此范围不得与从您的网络访问的任何子网重叠。您可以放心地在多个不同的 AWSCluster 对象中使用相同的范围。
list(string)
[10.2.0.0/16]
是
serviceLoadBalancerSubnetIDs
子网 ID(GKE on AWS 可在其中创建公共或专用负载平衡器)。GKE on AWS 将标记应用于每个子网,以支持负载均衡。ALB 支持需要多个指定子网。
list(string)
[subnet-abcdefg, subnet-12345678]
spec.controlPlane
此对象包含集群控制平面的常见参数。
名称
说明
类型
示例
必需
版本
控制层面的 GKE 版本。如需了解详情,请参阅版本控制和升级 以及升级用户集群 。
string
1.25.5-gke.2100
是
instanceType
每个控制平面副本的 AWS EC2 实例类型。请参阅支持的实例类型 。
string
m5.large
是
keyName
分配给每个控制平面副本的 AWS EC2 密钥对。
string
my-key-pair
是
subnetIDs
控制平面副本的 VPC 子网列表。
list(string)
[subnet-06a004869a1eae947]
是
securityGroupIDs
GKE on AWS 会自动创建安全组 ,其中包含正常运行的集群所需的最少规则。如果您要添加其他有权访问控制平面副本的安全组,请将其 ID 添加到 securityGroupIDs
。
list(string)
[sg-0ec06559d997a796f]
否
iamInstanceProfile
分配给控制平面副本的 AWS EC2 实例配置文件 的名称。
string
my-control-plane-profile
是
databaseEncryption.kmsKeyARN
GKE on AWS 用来加密集群中的应用层 Secret 的 AWS KMS 密钥的 Amazon 资源名称 (ARN)。
字符串
arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
hub.membershipName
用于注册 集群的 Connect 成员资格的名称。
字符串
projects/YOUR_PROJECT /locations/global/memberships/CLUSTER_NAME
cloudOperations
控制平面节点的 Cloud Logging 和 Cloud Monitoring 配置。
object
{projectID: YOUR_PROJECT , location: us-central1, enableLogging: true, enableMonitoring: true}
否
标记
分配给支持 AWSCluster 的每个 AWS 资源的键/值元数据。如需了解详情,请参阅标记的最佳做法
map(string)
{Environment: Production, Team: Analytics}
否
proxySecretName
用户选择的 Secret 名称 ,用于定义集群专用网络代理
字符串
proxy-secret-0
否
workloadIdentity
Workload Identity 配置的 Cloud Storage 存储桶。包含一个字段:oidcDiscoveryGCSBucket
。
object
{oidcDiscoveryGCSBucket: my-bucket}
否
rootVolume
控制平面副本根卷的参数。包含以下部分中定义的对象。
object
{sizeGiB: 10}
是
etcd
etcd 卷的参数。包含以下部分中定义的对象。
object
{sizeGiB: 10}
是
spec.controlPlane.rootVolume 和 spec.etcd.rootVolume
这些字段同时适用于 spec.controlPlane.rootVolume
和 spec.etcd.mainVolume
。
名称
说明
类型
示例
必需
sizeGiB
根卷的大小(以 GB 为单位)。
integer
10
是
volumeType
控制平面节点的 AWS EBS 卷类型 。可以是 gp2
(默认值)或 gp3
。
string
gp2
否
iops
卷的每秒预配 IO 操作数 (IOPS)。仅在 volumeType
为 GP3
时有效。如需了解详情,请参阅通用 SSD 卷 (gp3) 。
integer
5000
否
kmsKeyARN
用于对卷进行加密的 AWS KMS 密钥的 ARN。如需了解详情,请参阅使用客户管理 CMK 来加密卷 。
string
arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
否
spec.authentication.awsIAM
此对象指定通过 AWS IAM 被授予集群管理员访问权限的角色。
名称
说明
类型
示例
必需
adminIdentityARNs
被授予集群管理员访问权限的 AWS IAM 用户或角色的 ARN。
字符串
arn:aws:iam::123456789012:user/admin
仅在使用 AWS IAM 身份验证时才需要。
spec.authentication.oidc
您可以指定多个 oidc
对象。下面定义了 oidc
对象。
如需了解详情,请参阅使用 OIDC 进行身份验证 。
字段
必需
说明
格式
certificateAuthorityData
否
OIDC 提供方的 base64 编码的 PEM 编码证书 。要创建字符串,请将证书(包括标头)进行 base64 编码。将生成的字符串作为单独的一行添加到 certificateAuthorityData
中。示例:certificateAuthorityData: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==
字符串
clientID
是
向 OpenID 提供方发出身份验证请求的客户端应用的 ID。
字符串
clientSecret
否
OIDC 客户端应用和 OIDC 提供方之间的共享密钥令牌。
字符串
extraParams
否
要发送到 OpenID 提供方的其他键值对参数。如果您要向群组授权,请传入 resource=token-groups-claim
。
如果您的授权服务器提示是否同意,则对于使用 Microsoft Azure 和 Okta 进行的身份验证,请将 extraParams
设置为 prompt=consent
。对于 Google Cloud Identity,请将 extraParams
设置为 prompt=consent,access_type=offline
。
英文逗号分隔列表
groupsClaim
否
提供方用于返回安全组的 JWT 声明。
字符串
groupPrefix
否
附加到群组声明前面的前缀,以防止与现有名称冲突。例如,给定一个组 foobar 和一个前缀 gid-,则格式为 gid-foobar。
字符串
issuerURI
是
用于向 OpenID 发送授权请求的网址,例如 https://example.com/adfs
。Kubernetes API 服务器使用此网址来发现用于验证令牌的公钥。URI 必须使用 HTTPS。
网址字符串
kubectlRedirectURI
是
用于授权的重定向网址“kubectl”。
网址字符串
scopes
是
要发送到 OpenID 提供方的其他范围。Microsoft Azure 和 Okta 需要 offline_access
范围。
英文逗号分隔列表
userClaim
否
用作用户名的 JWT 声明。默认值为“sub”,该值应为最终用户的唯一标识符。您可以选择其他声明,例如电子邮件或名称,具体取决于 OpenID 提供商。不过,电子邮件以外的声明会以颁发者网址作为前缀,以防止命名冲突。
字符串
userPrefix
否
附加到用户名声明前面的前缀,以防止与现有名称冲突。如果您未提供此字段,并且用户名是电子邮件地址以外的其他值,则前缀默认为 issuerurl#
。如果将 userPrefix
设置为 -
,前缀将被停用。 字符串
发送反馈
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可 获得了许可,并且代码示例已根据 Apache 2.0 许可 获得了许可。有关详情,请参阅 Google 开发者网站政策 。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-09-03。
需要向我们提供更多信息?
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["很难理解","hardToUnderstand","thumb-down"],["信息或示例代码不正确","incorrectInformationOrSampleCode","thumb-down"],["没有我需要的信息/示例","missingTheInformationSamplesINeed","thumb-down"],["翻译问题","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-09-03。"],[],[],null,["# AWSCluster\n\nThis topic describes the configuration options of the AWSCluster\nCustom Resource Definition.\n\nDefining an AWSCluster\n----------------------\n\n`AWSCluster` is a Kubernetes custom resource defined by\nGKE on AWS. This resource represents a GKE on AWS\n[control plane](/kubernetes-engine/multi-cloud/docs/aws/previous-generation/concepts/architecture#management_service).\n\nTo create a cluster from this template, copy the following YAML and complete the\nhighlighted values defined in the [`spec.networking`](#specnetworking) and\n[`spec.controlPlane`](#speccontrolplane) field definitions. Then, apply\nthe resource manifest to your management service. \n\n apiVersion: multicloud.cluster.gke.io/v1\n kind: AWSCluster\n metadata:\n name: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCLUSTER_NAME\u003c/span\u003e\u003c/var\u003e\n spec:\n region: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eAWS_REGION\u003c/span\u003e\u003c/var\u003e\n networking:\n vpcID: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eVPC_ID\u003c/span\u003e\u003c/var\u003e\n podAddressCIDRBlocks: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003ePOD_ADDRESS_CIDR_BLOCKS\u003c/span\u003e\u003c/var\u003e\n serviceAddressCIDRBlocks: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eSERVICE_ADDRESS_CIDR_BLOCKS\u003c/span\u003e\u003c/var\u003e\n serviceLoadBalancerSubnetIDs: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eSERVICE_LOAD_BALANCER_SUBNETS\u003c/span\u003e\u003c/var\u003e\n controlPlane:\n version: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eGKE_VERSION\u003c/span\u003e\u003c/var\u003e # Latest version is 1.25.5-gke.2100\n instanceType: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eAWS_INSTANCE_TYPE\u003c/span\u003e\u003c/var\u003e\n keyName: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eSSH_KEY_NAME\u003c/span\u003e\u003c/var\u003e\n subnetIDs:\n - \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCONTROL_PLANE_SUBNET_IDS\u003c/span\u003e\u003c/var\u003e\n securityGroupIDs:\n - \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCONTROL_PLANE_SECURITY_GROUPS\u003c/span\u003e\u003c/var\u003e\n iamInstanceProfile: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCONTROL_PLANE_IAM_ROLE\u003c/span\u003e\u003c/var\u003e\n databaseEncryption:\n kmsKeyARN: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eARN_OF_KMS_KEY\u003c/span\u003e\u003c/var\u003e\n hub:\n membershipName: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eANTHOS_CONNECT_NAME\u003c/span\u003e\u003c/var\u003e\n cloudOperations: # Optional\n projectID: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eYOUR_PROJECT\u003c/span\u003e\u003c/var\u003e\n location: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eGCP_LOCATION\u003c/span\u003e\u003c/var\u003e\n enableLogging: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eENABLE_LOGGING\u003c/span\u003e\u003c/var\u003e\n enableMonitoring: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eENABLE_MONITORING\u003c/span\u003e\u003c/var\u003e\n tags:\n \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-nt\"\u003eTAG_KEY\u003c/span\u003e\u003c/var\u003e: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eTAG_VALUE\u003c/span\u003e\u003c/var\u003e\n proxySecretName: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003ePROXY_SECRET_NAME\u003c/span\u003e\u003c/var\u003e\n workloadIdentity:\n oidcDiscoveryGCSBucket: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eWORKLOAD_IDENTITY_BUCKET\u003c/span\u003e\u003c/var\u003e\n rootVolume: # Optional\n sizeGiB: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eROOT_VOLUME_SIZE\u003c/span\u003e\u003c/var\u003e\n volumeType: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eROOT_VOLUME_TYPE\u003c/span\u003e\u003c/var\u003e\n iops: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eROOT_VOLUME_IOPS\u003c/span\u003e\u003c/var\u003e\n kmsKeyARN: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eROOT_VOLUME_KEY\u003c/span\u003e\u003c/var\u003e\n etcd: # Optional\n mainVolume:\n sizeGiB: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eETCD_VOLUME_SIZE\u003c/span\u003e\u003c/var\u003e\n volumeType: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eETCD_VOLUME_TYPE\u003c/span\u003e\u003c/var\u003e\n iops: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eETCD_VOLUME_IOPS\u003c/span\u003e\u003c/var\u003e\n kmsKeyARN: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eETCD_VOLUME_KEY\u003c/span\u003e\u003c/var\u003e\n authentication:\n awsIAM:\n adminIdentityARNs: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eADMIN_IAM_ARN\u003c/span\u003e\u003c/var\u003e\n oidc: # Optional\n - certificateAuthorityData: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCERTIFICATE_STRING\u003c/span\u003e\u003c/var\u003e\n clientID: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCLIENT_ID\u003c/span\u003e\u003c/var\u003e\n clientSecret: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCLIENT_SECRET\u003c/span\u003e\u003c/var\u003e\n extraParams: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eEXTRA_PARAMS\u003c/span\u003e\u003c/var\u003e\n groupsClaim: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eGROUPS_CLAIM\u003c/span\u003e\u003c/var\u003e\n groupPrefix: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eGROUP_PREFIX\u003c/span\u003e\u003c/var\u003e\n issuerURI: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eISSUER_URL\u003c/span\u003e\u003c/var\u003e\n kubectlRedirectURI: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eKUBECTL_REDIRECT_URL\u003c/span\u003e\u003c/var\u003e\n scopes: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eSCOPES\u003c/span\u003e\u003c/var\u003e\n userClaim: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eUSER_CLAIM\u003c/span\u003e\u003c/var\u003e\n userPrefix: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eUSER_PREFIX\u003c/span\u003e\u003c/var\u003e\n\nThe subfields under `spec` are described in the following sections.\n\n### spec.networking\n\nThis object defines cluster-wide networking configuration.\n\n### spec.controlPlane\n\nThis object includes common parameters for the cluster's control plane.\n\n### spec.controlPlane.rootVolume and spec.etcd.rootVolume\n\nThese fields apply to both `spec.controlPlane.rootVolume` and\n`spec.etcd.mainVolume`.\n\n### spec.authentication.awsIAM\n\nThis object specifies roles granted cluster administrator access with AWS IAM.\n\n### spec.authentication.oidc\n\nYou can specify more than one `oidc` object. The `oidc` object is defined below.\nFor more information, see [Authenticating with OIDC](/kubernetes-engine/multi-cloud/docs/aws/previous-generation/how-to/oidc)."]]