为集群创建 IAM OIDC 提供商 - Amazon EKS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

为集群创建 IAM OIDC 提供商

您的集群具有与其关联的 OpenID Connect(OIDC)颁发者 URL。要将 Amazon Identity and Access Management(IAM)角色用于服务账户,您的集群 OIDC 发布者 URL 必须存在 IAM OIDC 提供商。

先决条件
  • 现有 Amazon EKS 集群。要部署一个角色,请参阅 开始使用 Amazon EKS

  • 您的设备或 Amazon CloudShell 上安装并配置了 2.12.3 版或更高版本,或 1.27.160 版或更高版本的 Amazon CLI。您可以使用 aws --version | cut -d / -f2 | cut -d ' ' -f1 检查您的当前版本。软件包管理器(如 yumapt-get 或适用于 macOS 的 Homebrew)通常比 Amazon CLI 的最新版本落后几个版本。要安装最新版本,请参阅《Amazon Command Line Interface 用户指南》中的安装、更新和卸载 Amazon CLI使用 aws configure 进行快速配置。Amazon CloudShell 中安装的 Amazon CLI 版本也可能比最新版本落后几个版本。要对其进行更新,请参阅《Amazon CloudShell 用户指南》中的将 Amazon CLI 安装到您的主目录

  • 您的设备或 Amazon CloudShell 上安装了 kubectl 命令行工具。该版本可以与集群的 Kubernetes 版本相同,或者最多早于或晚于该版本一个次要版本。例如,如果您的集群版本为 1.26,则可以将 kubectl1.251.261.27 版本与之配合使用。要安装或升级 kubectl,请参阅 安装或更新 kubectl

  • 包含集群配置的现有 kubectl config 文件。要创建 kubectl config 文件,请参阅 为 Amazon EKS 集群创建或更新 kubeconfig 文件

您可以使用 eksctl 或Amazon Web Services Management Console为集群创建 IAM OIDC 提供商。

eksctl
先决条件

您的设备或 Amazon CloudShell 上安装了 0.155.0 版或更高版本的 eksctl 命令行工具。要安装或更新 eksctl,请参阅 安装或更新 eksctl

使用 eksctl 为集群创建 IAM OIDC 身份提供商
  1. 确定集群是否拥有现有 IAM OIDC 提供商。

    检索集群的 OIDC 提供商 ID 并将其存储在变量中。将 my-cluster 替换为您自己的值。

    export cluster_name=my-cluster oidc_id=$(aws eks describe-cluster --name $cluster_name --query "cluster.identity.oidc.issuer" --output text | cut -d '/' -f 5)
  2. 确定您的账户中是否已存在具有您的集群 ID 的 IAM OIDC 提供商。

    aws iam list-open-id-connect-providers | grep $oidc_id | cut -d "/" -f4

    如果返回了输出,则表示您的集群已经有 IAM OIDC 提供商,您可以跳过下一步。如果没有返回输出,则您必须为集群创建 IAM OIDC 提供商。

  3. 使用以下命令为您的集群创建 IAM OIDC 身份提供商。

    eksctl utils associate-iam-oidc-provider --cluster $cluster_name --approve
Amazon Web Services Management Console
使用 Amazon Web Services Management Console 为集群创建 IAM OIDC 身份提供商
  1. 从以下位置打开 Amazon EKS 控制台:https://console.aws.amazon.com/eks/home#/clusters

  2. 在左侧窗格中,选择 Clusters(集群),然后在 Clusters(集群)页面上选择集群的名称。

  3. Overview(概述)选项卡上的 Details(详细信息)部分中,记下 OpenID Connect provider URL(OpenID Connect 提供商 URL)的值。

  4. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  5. 请在左侧导航窗格中,选择 Access management(访问管理)下方的 Identity Providers(标识提供程序)。如果列出的 Provider(提供商)与集群的 URL 匹配,那么您的集群已经有了提供商。如果未列出与集群 URL 匹配的提供商,则必须创建一个提供商。

  6. 要创建提供商,请选择 Add Provider(添加提供商)。

  7. 对于 Provider type(提供商类型),请选择 OpenID Connect

  8. 对于 Provider URL(提供商 URL),输入集群的 OIDC 提供商 URL,然后选择 Get thumbprint(获取指纹)。

  9. 对于 Audience(受众),输入 sts.amazonaws.com,然后选择 Add provider(添加提供商)

下一步

配置 Kubernetes 服务账户以代入 IAM 角色