
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
该命令行工具允许使用Google Apps作为联合(单点登录,SSO)提供商获取AWS临时(STS)凭证。
aws-google-auth是一个用于通过Google Apps SAML SSO认证获取AWS临时访问凭证的工具。它解决了需要通过Google账户单点登录访问AWS资源的场景,无需手动管理长期AWS访问密钥,提高了安全性和操作便捷性。
需先将Google Apps配置为AWS的SAML身份提供商(IdP),涉及Google Apps和AWS双方的配置。参考文档:
如需简单分配用户到AWS账户角色,可参考工具https://github.com/cevoaustralia/google-aws-federator%E3%80%82
需获取以下两个关键参数:
应用 > SAML应用 > AWS SSO设置,URL中包含类似...#AppDetails:service=123456789012...的部分,其中数字即SP ID安全 > 设置单点登录(SSO),SSO URL中类似https://accounts.google.com/o/saml2/idp?idpid=aBcD01AbC的部分,等号后的字符串即IDP IDshell# 基础安装 localhost$ sudo pip install aws-google-auth # 带U2F支持的安装 localhost$ sudo pip install aws-google-auth[u2f]
注意:使用ZSH时需引用安装命令:
shelllocalhost$ sudo pip install "aws-google-auth[u2f]"
shell# 本地构建镜像 localhost$ cd ..../aws-google-auth && docker build -t aws-google-auth . # 使用Docker Hub镜像 localhost$ docker pull cevoaustralia/aws-google-auth
shell$ aws-google-auth -h usage: aws-google-auth [-h] [-u USERNAME] [-I IDP_ID] [-S SP_ID] [-R REGION] [-d DURATION] [-p PROFILE] [-D] [-q] [--bg-response BG_RESPONSE] [--saml-assertion SAML_ASSERTION] [--no-cache] [--print-creds] [--resolve-aliases] [--save-failure-html] [--save-saml-flow] [-a | -r ROLE_ARN] [-k] [-l {debug,info,warn}] [-V] Acquire temporary AWS credentials via Google SSO 可选参数: -h, --help 显示帮助信息并退出 -u USERNAME, --username USERNAME Google Apps用户名 ($GOOGLE_USERNAME) -I IDP_ID, --idp-id IDP_ID Google SSO IDP标识符 ($GOOGLE_IDP_ID) -S SP_ID, --sp-id SP_ID Google SSO SP标识符 ($GOOGLE_SP_ID) -R REGION, --region REGION AWS区域端点 ($AWS_DEFAULT_REGION) -d DURATION, --duration DURATION 凭证有效期(默认使用$DURATION环境变量,否则为43200秒) -p PROFILE, --profile PROFILE AWS配置文件(默认使用$AWS_PROFILE环境变量,否则为'sts') -D, --disable-u2f 禁用U2F功能 -q, --quiet 安静输出模式 --bg-response BG_RESPONSE 覆盖默认bgresponse挑战令牌 ($GOOGLE_BG_RESPONSE) --saml-assertion SAML_ASSERTION 要使用的Base64编码SAML断言 --no-cache 不缓存SAML断言 --print-creds 打印凭证信息 --resolve-aliases 解析AWS账户别名 --save-failure-html 将HTML失败响应写入文件用于故障排除 --save-saml-flow 将所有与Google的GET/PUT请求和HTML响应写入文件用于故障排除 -a, --ask-role 始终提示选择角色 -r ROLE_ARN, --role-arn ROLE_ARN 要承担的角色ARN ($AWS_ROLE_ARN) -k, --keyring 使用keyring存储密码 -l {debug,info,warn}, --log {debug,info,warn} 选择日志级别(默认:warn) -V, --version 显示程序版本号并退出
注意:如需会话时长超过AWS默认的3600秒(1小时),必须修改IAM角色以允许更长的会话时间,详见AWS文档。
aws-google-auth注意:可通过命令行参数或环境变量跳过交互提示。
设置环境变量:
GOOGLE_USERNAME:Google账户***GOOGLE_IDP_ID:Google IDP标识符(见前置设置)GOOGLE_SP_ID:Google SP标识符(见前置设置)AWS_PROFILE:可选,AWS配置文件名称(默认:'sts')ROLE_ARN:可选,要承担的角色ARN运行Docker容器:
shelldocker run -it -e GOOGLE_USERNAME -e GOOGLE_IDP_ID -e GOOGLE_SP_ID -e AWS_PROFILE -e ROLE_ARN -v ~/.aws:/root/.aws cevoaustralia/aws-google-auth
注意:Docker环境不支持U2F安全密钥,可能会出现"RuntimeWarning: U2F Device Not Found"错误。如有多个可用角色且未设置ROLE_ARN,将提示选择角色。
支持从stdin输入密码(适用于密码管理器集成):
shell$ password-manager show password | aws-google-auth Google Password: MFA token: Assuming arn:aws:iam::123456789012:role/admin Credentials Expiration: ...
注意:此功能用于密码管理器集成,不建议从命令行直接传递密码,以避免密码泄露到shell历史记录。
使用-p或--profile标志指定AWS配置文件时,工具会将用户名、IDP和SP详情存储在~/.aws/config文件中。再次使用相同配置文件认证时,将记住这些值以加快认证过程。
可创建别名简化认证命令:
shellalias aws-development='unset AWS_PROFILE; aws-google-auth -I $GOOGLE_IDP_ID -S $GOOGLE_SP_ID -u $USERNAME -p aws-dev ; export AWS_PROFILE=aws-dev'
已建立配置文件后:
shellalias aws-development='unset AWS_PROFILE; aws-google-auth -p aws-dev ; export AWS_PROFILE=aws-dev'
Google支持多种双因素认证方案,每种方案在登录过程中会产生不同的"next" URL。以下是工具支持的认证方式及对应的URL片段:
| 认证方式 | URL片段 |
|---|---|
| 无第二因素 | (无) |
| TOTP(如Google Authenticator或Authy) | .../signin/challenge/totp/... |
| SMS(或语音通话) | .../signin/challenge/ipp/... |
| 带号码提交的SMS(或语音通话) | .../signin/challenge/iap/... |
| Google Prompt(手机应用) | .../signin/challenge/az/... |
| 安全密钥(如YubiKey) | .../signin/challenge/sk/... |
| 双重提示(验证2FA) | .../signin/challenge/dp/... |
| 备份代码(打印的代码) | (尚未支持) |
如需开发该工具,可使用以下命令本地安装:
shell# 无U2F支持 pip install -e . # 带U2F支持 pip install -e .[u2f]
开发前请查看行为准则和贡献指南。
本工具的开发受https://github.com/wheniwork/keyme%E5%90%AF%E5%8F%91%EF%BC%8C%E5%85%B6%E5%AF%B9Google SAML认证机制的研究为该工具提供了基础。属性管理和凭证注入AWS配置文件的功能主要借鉴自https://github.com/venth/aws-adfs%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务