如何通过CDK将IAM OIDC身份提供商与EKS集群关联
CDK实现IAM OIDC身份提供商与EKS集群关联方案
AWS控制台的「Associate Identity Provider」(关联身份提供商)按钮的核心能力,是将已有的IAM OIDC身份提供商资源绑定到指定EKS集群,可直接通过CDK的aws-cdk-lib/aws-eks模块实现,无需手动控制台操作。
前置依赖
- 已提前获取目标EKS集群的名称、管理角色ARN
- 已提前获取待关联的IAM OIDC身份提供商ARN
TypeScript CDK示例代码
import * as cdk from 'aws-cdk-lib'; import * as eks from 'aws-cdk-lib/aws-eks'; import * as iam from 'aws-cdk-lib/aws-iam'; const app = new cdk.App(); const eksStack = new cdk.Stack(app, 'EksOidcBindStack', { env: { region: '你的AWS区域代码,例如cn-north-1', account: '你的AWS账号ID' } }); // 方式1:关联已有EKS集群和已有OIDC提供商 const targetOidcProvider = iam.OpenIdConnectProvider.fromOpenIdConnectProviderArn( eksStack, 'TargetOidcProvider', '替换为你的IAM OIDC身份提供商ARN' ); eks.Cluster.fromClusterAttributes(eksStack, 'TargetEksCluster', { clusterName: '替换为你的EKS集群名称', kubectlRoleArn: '替换为你的EKS集群管理角色ARN', openIdConnectProvider: targetOidcProvider }); // 方式2:新建EKS集群时直接指定OIDC提供商,自动完成关联 const newCluster = new eks.Cluster(eksStack, 'NewEksCluster', { version: eks.KubernetesVersion.V1_28, // 替换为你的集群版本 openIdConnectProvider: targetOidcProvider, // 其他集群配置(vpc、节点组等)按需补充 });
验证方法
CDK栈部署完成后,进入EKS控制台对应集群的「配置」页,在「身份提供商」分类下即可看到已关联的OIDC提供商信息,和控制台手动操作效果完全一致。
内容的提问来源于stack exchange,提问作者Sean
相关产品推荐
相关产品推荐

