
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Akeyless Zero Trust Bastion提供使用Akeyless JIT凭证(动态密钥和SSH证书签发者)对远程资源的零信任访问。
要运行Akeyless Zero Trust Bastion,只需运行容器:
bashdocker run --rm -itd \ -p 8888:8888 \ docker.xuanyuan.run/akeyless/zero-trust-bastion
服务将在端口:8888(或您选择映射的任何其他端口)上可用。
默认情况下,Akeyless Zero Trust Bastion使用https://api.akeyless.io与Akeyless Vault通信。如果您的部署包含Akeyless API网关,可以使用它访问远程资源:
bashdocker run --rm -itd \ -p 8888:8888 \ -e AKEYLESS_URL=https://akeyless.mydomain.com \ docker.xuanyuan.run/akeyless/zero-trust-bastion
其中https://akeyless.mydomain.com是Akeyless API网关公开的Akeyless API地址(默认端口:8081)。请注意,这不必与运行动态密钥生成器的API网关相同,可以是任何公开可用的API网关。
为增强安全性和密钥隔离,可以授予Akeyless Zero Trust Bastion对即时凭证的读取权限,而实际用户仅对其具有列出权限。需确保为特权认证方法授予对所需凭证的足够权限(读取权限),实际最终用户对相同项目仅需具有列出权限,因此他们不会获取实际值,由Bastion代表执行访问。
具有“固定用户”功能的零信任RDP访问
使用“固定用户”功能的RDP生成器依赖SAML子声明确定Windows用户名。使用特权凭证时,Zero-Trust Bastion将使用最终用户凭证中的rdp_username子声明。若使用不同子声明,可在部署时通过RDP_USERNAME_SUB_CLAIM环境变量指定:
docker run ... -e RDP_USERNAME_SUB_CLAIM=custom_user # 默认:rdp_username
AWS IAM特权凭证
在AWS中设置容器时,通过PRIVILEGED_ACCESS_ID环境变量指定AWS IAM类型的特权凭证:
docker run ... -e PRIVILEGED_ACCESS_ID=p-12341234ab
Azure AD特权凭证
在Azure中设置容器时,通过PRIVILEGED_ACCESS_ID环境变量指定Azure AD类型的特权凭证:
docker run ... -e PRIVILEGED_ACCESS_ID=p-12341234ab
如需使用特定Azure对象ID认证,添加AZURE_OBJECT_ID环境变量:
docker run ... -e AZURE_OBJECT_ID=<object-id>
GCP特权凭证
在GCP中设置容器时,通过PRIVILEGED_ACCESS_ID环境变量指定GCP类型的特权凭证:
docker run ... -e PRIVILEGED_ACCESS_ID=p-12341234ab
默认GCP认证使用akeyless.io受众,若设置时使用不同值,通过GCP_AUDIENCE环境变量指定:
docker run ... -e GCP_AUDIENCE=<audience> # 默认:akeyless.io
API Key特权凭证
设置容器时,通过PRIVILEGED_ACCESS_ID和PRIVILEGED_ACCESS_KEY环境变量指定API Key类型的特权凭证:
docker run ... \ -e PRIVILEGED_ACCESS_ID=p-12341234ab \ -e PRIVILEGED_ACCESS_KEY=something-something-secret-key
限制对特定访问ID的访问
使用特权凭证时,建议通过ALLOWED_ACCESS_IDS环境变量显式指定允许访问受保护密钥的访问ID,默认接受所有访问ID:
ALLOWED_ACCESS_IDS=p=000011112222 ALLOWED_ACCESS_IDS=p=000011112222,p-aabbccddeeff
每个RDP会话会被录制并保存在容器内。通过挂载本地目录到容器内/home/akeyless/recordings路径访问录制文件:
bashdocker run --rm -itd \ -p 8888:8888 \ -v $PWD/recordings:/home/akeyless/recordings \ docker.xuanyuan.run/akeyless/zero-trust-bastion
当前工作目录会创建recordings文件夹,所有会话录制在会话结束时可用。请注意:RDP会话录制占用大量存储空间,需设置备份/清理流程。
可将会话录制自动上传到AWS S3或Azure Blob存储,支持两种方式:
方法1:使用IAM角色(推荐)
在AWS/Azure机器上部署Bastion,使用具有上传权限的IAM角色,指定环境变量:
AWS S3:
bashdocker run --rm -itd \ -p 8888:8888 \ -e AWS_REGION=us-east-1 \ -e AWS_S3_BUCKET=my-bucket \ -e AWS_S3_PREFIX=akeyless-zero-trust-bastion \ docker.xuanyuan.run/akeyless/zero-trust-bastion
Azure Blob Storage:
bashdocker run --rm -itd \ -p 8888:8888 \ -e AZURE_STORAGE_ACCOUNT=srarecords \ -e AZURE_STORAGE_CONTAINER_NAME=akeyless-zero-trust-bastion \ docker.xuanyuan.run/akeyless/zero-trust-bastion
方法2:使用显式凭证(不推荐)
AWS S3:
bashdocker run --rm -itd \ -p 8888:8888 \ -e AWS_ACCESS_KEY_ID=** \ -e AWS_SECRET_ACCESS_KEY=* \ -e AWS_REGION=us-east-1 \ -e AWS_S3_BUCKET=my-bucket \ -e AWS_S3_PREFIX=akeyless-zero-trust-bastion \ docker.xuanyuan.run/akeyless/zero-trust-bastion
Azure Blob Storage:
bashdocker run --rm -itd \ -p 8888:8888 \ -e AZURE_TENANT_ID=** \ -e AZURE_CLIENT_ID=** \ -e AZURE_CLIENT_SECRET=* \ -e AZURE_STORAGE_ACCOUNT=srarecords \ -e AZURE_STORAGE_CONTAINER_NAME=akeyless-zero-trust-bastion \ docker.xuanyuan.run/akeyless/zero-trust-bastion
无论哪种方法,会话结束时录制会上传到指定存储,同时通过卷挂载在/home/akeyless/recordings下也可访问。上传状态反映在容器日志中,异常时可检查日志。
所有内容打包为单个Docker容器。本地构建步骤:克隆项目后运行:
bashdocker build --tag akeyless/zero-trust-bastion .
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务