Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门。为集群创建 IAM OIDC 提供商
您的集群具有与其关联的 OpenID Connect(OIDC)颁发者 URL。要将 Amazon Identity and Access Management(IAM)角色用于服务账户,您的集群必须存在 IAM OIDC 提供商。
您可以使用 eksctl 或 Amazon Web Services Management Console 为集群创建 OIDC 提供商。
- eksctl
-
先决条件
您的设备或 Amazon CloudShell 上安装了 0.110.0 版或更高版本的 eksctl 命令行工具。要安装或更新 eksctl,请参阅 安装或更新 eksctl。
使用 eksctl 为集群创建 IAM OIDC 身份提供商
-
确定集群是否拥有现有 IAM OIDC 提供商。
检索集群的 OIDC 提供商 ID 并将其存储在变量中。
oidc_id=$(aws eks describe-cluster --name my-cluster --query "cluster.identity.oidc.issuer" --output text | cut -d '/' -f 5)
确定您的账户中是否已存在具有您的集群 ID 的 IAM OIDC 提供商。
aws iam list-open-id-connect-providers | grep $oidc_id
如果上一个命令返回了输出,则表示您的集群已经有提供商,您可以跳过下一步。如果没有返回输出,则您必须为集群创建 IAM OIDC 提供商。
-
使用以下命令为您的集群创建 IAM OIDC 身份提供商。将 my-cluster 替换为您自己的值。
eksctl utils associate-iam-oidc-provider --cluster my-cluster --approve
- Amazon Web Services Management Console
-
使用 Amazon Web Services Management Console 为集群创建 IAM OIDC 身份提供商
-
从以下位置打开 Amazon EKS 控制台:https://console.aws.amazon.com/eks/home#/clusters。
在左侧窗格中,选择 Clusters(集群),然后在 Clusters(集群)页面上选择集群的名称。
-
在 Overview(概述)选项卡上的 Details(详细信息)部分中,记下 OpenID Connect provider URL(OpenID Connect 提供商 URL)的值。
-
通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/。
-
请在左侧导航窗格中,选择 Access management(访问管理)下方的 Identity Providers(标识提供程序)。如果列出的 Provider(提供商)与集群的 URL 匹配,那么您的集群已经有了提供商。如果未列出与集群 URL 匹配的提供商,则必须创建一个提供商。
-
要创建提供商,请选择 Add Provider(添加提供商)。
-
对于 Provider type(提供商类型),请选择 OpenID Connect。
-
对于 Provider URL(提供商 URL),输入集群的 OIDC 提供商 URL,然后选择 Get thumbprint(获取指纹)。
-
对于 Audience(受众),输入 sts.amazonaws.com,然后选择 Add provider(添加提供商)。
下一步
配置 Kubernetes 服务账户以代入 IAM 角色