为集群创建 IAM OIDC 提供商 - Amazon EKS

为集群创建 IAM OIDC 提供商

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

Prerequisites

现有集群。如果还没有,可以使用 开始使用 Amazon EKS 指南之一创建一个。

使用 eksctl 为集群创建 IAM OIDC 身份提供商

  1. 确定集群是否拥有现有 IAM OIDC 提供商。

    查看集群的 OIDC 提供商 URL。

    aws eks describe-cluster --name <cluster_name> --query "cluster.identity.oidc.issuer" --output text

    输出示例:

    https://oidc.eks.us-west-2.amazonaws.com/id/EXAMPLED539D4633E53DE1B716D3041E

    列出您账户中的所有 OIDC 提供商。将 <EXAMPLED539D4633E53DE1B716D3041E>(包括 <>)替换为上一个命令返回的值。

    aws iam list-open-id-connect-providers | grep <EXAMPLED539D4633E53DE1B716D3041E>

    输出示例

    "Arn": "arn:aws-cn:iam::111122223333:oidc-provider/oidc.eks.us-west-2.amazonaws.com/id/EXAMPLED539D4633E53DE1B716D3041E"

    如果上一个命令返回了输出,则表示您的集群已经有提供商。如果没有返回输出,则您必须创建 IAM OIDC 提供商。

  2. 使用以下命令为您的集群创建 IAM OIDC 身份提供商。将 <cluster_name>(包括 <>)替换为您自己的值。

    eksctl utils associate-iam-oidc-provider --cluster <cluster_name> --approve

使用 AWS Management Console 为集群创建 IAM OIDC 身份提供商

  1. 访问 https://console.aws.amazon.com/eks/home#/clusters 打开 Amazon EKS 控制台。

  2. 选择集群的名称,然后选择 Configuration(配置)选项卡。

  3. Details(详细信息)部分中,记下 OpenID Connect provider URL(OpenID Connect 提供商 URL)的值。

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

  5. 在导航窗格中,选择 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(添加提供商)