本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

该工具用于解决使用AWS SSO(AWS IAM Identity Center)角色对AWS EKS集群进行身份验证时遇到的问题。AWS原生支持使用AWS IAM角色对EKS进行身份验证,但需要提供角色ARN,且无法直接使用AWS SSO PermissionSet名称。
由PermissionSet创建的IAM角色包含随机后缀,当更新PermissionSet配置时这些后缀可能会变化,导致EKS访问权限丢失。在跨多个AWS账户管理多个EKS集群时,此问题尤为突出。该工具允许在aws-auth配置映射中使用PermissionSet名称替代角色ARN,自动将其转换为EKS集群所需的角色ARN格式,确保访问权限稳定。
kube-system命名空间中手动维护带有具体ARN的aws-auth配置映射apiVersion: v1 kind: ConfigMap metadata: name: aws-auth namespace: kube-system data: mapAccounts: | [] mapRoles: | - "groups": - "system:masters" "rolearn": "arn:aws:iam::000000000000:role/AWSReservedSSO_AdminRole_0123456789abcdef" "username": "AdminRole:{{SessionName}}" mapUsers: | []
apiVersion: v1 kind: ConfigMap metadata: name: aws-auth namespace: aws-iam-authenticator-sso-wrapper data: mapAccounts: | [] mapRoles: | - "groups": - "system:masters" "permissionset": "AdminRole" "username": "AdminRole:{{SessionName}}" mapUsers: | []
工具会处理其所在命名空间中的aws-auth配置映射,将permissionset字段转换为对应的角色ARN,并将结果保存到kube-system命名空间中,供EKS集群使用。
❯ aws-iam-authenticator-sso-wrapper -h Usage of aws-iam-authenticator-sso-wrapper: -aws-region string 与IAM服务交互时使用的AWS区域(默认"us-east-1") -debug 启用调试日志 -dst-configmap string 转换后更新的目标Kubernetes配置映射名称(默认"aws-auth") -dst-namespace string 目标Kubernetes命名空间(默认"kube-system") -interval int 应用检查更新的时间间隔(秒)(默认1800) -src-configmap string 读取并进行转换的源Kubernetes配置映射名称(默认"aws-auth") -src-namespace string 读取包含PermissionSet名称的配置映射的Kubernetes命名空间,未定义时使用Pod的当前命名空间
Docker镜像可从Docker Hub获取:justinasb/aws-iam-authenticator-sso-wrapper
该应用需要列出AWS IAM角色的权限,因此需创建具有以下权限的IAM角色:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "iam:ListRoles", "Resource": "*" } ] }
信任策略配置(替换[AWS-ACCOUNT-ID]、[EKS-CLUSTER-REGION]、[EKS-CLUSTER-ID]为实际值):
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::[AWS-ACCOUNT-ID]:oidc-provider/oidc.eks.[EKS-CLUSTER-REGION].amazonaws.com/id/[EKS-CLUSTER-ID]" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "oidc.eks.[EKS-CLUSTER-REGION].amazonaws.com/id/[EKS-CLUSTER-ID]:sub": "system:serviceaccount:aws-iam-authenticator-sso-wrapper:aws-iam-authenticator-sso-wrapper" } } } ] }
> helm repo add aws-iam-authenticator-sso-wrapper [***] "aws-iam-authenticator-sso-wrapper" 已添加到您的仓库
> helm repo update 正在从您的图表仓库获取最新信息... ...成功从"aws-iam-authenticator-sso-wrapper"图表仓库获取更新
> helm install \ aws-iam-authenticator-sso-wrapper justinas-b/aws-iam-authenticator-sso-wrapper \ --namespace aws-iam-authenticator-sso-wrapper \ --create-namespace \ --set serviceaccount.annotations."eks\.amazonaws\.com/role-arn"=arn:aws:iam::123456789012:role/my-iam-role NAME: aws-iam-authenticator-sso-wrapper LAST DEPLOYED: 2023年10月2日 15:23:36 NAMESPACE: aws-iam-authenticator-sso-wrapper STATUS: deployed REVISION: 1 TEST SUITE: None
推荐使用AWS IRSA(IAM角色用于服务账户)进行AWS身份验证,也支持其他方式:
~/.aws/config)AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY)免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429