个人访问令牌

个人访问令牌 (PAT) 为 Docker CLI 认证提供了一种比密码更安全的替代方案。使用 PAT 对自动化系统、CI/CD 流水线以及开发工具进行认证,而无需暴露您的 Docker Hub 密码。

主要优势

与密码认证相比,PAT 提供了显著的安全优势:

  • 增强安全性:调查令牌使用情况,禁用可疑令牌,并防止在系统被入侵时可能危及账户的管理操作。
  • 更好的自动化:为不同的集成颁发多个令牌,每个令牌具有特定权限,并在不再需要时独立撤销它们。
  • 双重认证兼容性:当您启用双重认证时,这是必需的,可在不绕过 2FA 保护的情况下提供安全的 CLI 访问。
  • 使用跟踪:监控令牌的使用时间和方式,以识别潜在的安全问题或未使用的自动化。

谁应该使用个人访问令牌?

在以下常见场景中使用 PAT:

  • 开发工作流:在本地开发期间认证 Docker CLI
  • CI/CD 流水线:在持续集成系统中自动化镜像构建和部署
  • 自动化脚本:在自动化部署或备份脚本中推送和拉取镜像
  • 开发工具:将 Docker Hub 访问与 IDE、容器管理工具或监控系统集成
  • 双重认证:启用 2FA 时 CLI 访问所必需的
Note

对于组织范围的自动化,请考虑 组织访问令牌,它不与个人用户账户绑定。

创建个人访问令牌

Important

将访问令牌视为密码并确保其安全。将令牌存储在凭据管理器中,切勿将其提交到源代码仓库。

要创建个人访问令牌:

  1. 登录 Docker Home
  2. 选择右上角的头像,然后从下拉菜单中选择 Account settings
  3. 选择 Personal access tokens
  4. 选择 Generate new token
  5. 配置您的令牌:
    • Description: 使用描述性名称,表明令牌的用途
    • Expiration date: 根据您的安全策略设置过期日期
    • Access permissions: ReadWriteDelete
  6. 选择 Generate。复制屏幕上显示的令牌并保存。一旦退出屏幕,您将无法再次获取该令牌。

使用个人访问令牌

使用个人访问令牌登录 Docker CLI:

$ docker login --username <YOUR_USERNAME>
Password: [在此粘贴您的 PAT]

当提示输入密码时,请输入您的个人访问令牌,而不是 Docker Hub 密码。

修改个人访问令牌

Note

您无法编辑现有个人访问令牌的过期日期。如果需要设置新的过期日期,您必须创建一个新的 PAT。

您可以根据需要重命名、激活、停用或删除令牌。您可以在账户设置中管理您的令牌。

  1. 登录 Docker Home
  2. 选择右上角的头像,然后从下拉菜单中选择 Account settings
  3. 选择 Personal access tokens
    • 此页面显示所有令牌的概览,并列出令牌是手动生成的还是 自动生成的。您还可以查看令牌的权限范围、哪些令牌处于激活或未激活状态、创建日期、最后使用日期以及过期日期。
  4. 选择令牌行最右侧的操作菜单,然后选择 DeactivateActivateEditDelete 来修改令牌。
  5. 编辑令牌后,选择 Save token

自动生成的令牌

Docker Desktop 在您登录时会自动创建认证令牌,具有以下特征:

  • 自动创建:在登录 Docker Desktop 时生成
  • 完整权限:包括 Read、Write 和 Delete 访问权限
  • 基于会话:当 Docker Desktop 会话过期时自动删除
  • 账户限制:每个账户最多 5 个自动生成的令牌
  • 自动清理:创建新令牌时会删除旧令牌

如果需要,您可以手动删除自动生成的令牌,但在使用 Docker Desktop 时会重新创建它们。

公平使用政策

使用个人访问令牌时,请注意,过度创建令牌可能会导致限制或额外费用。Docker 保留对 PAT 使用过多的账户施加限制的权利,以确保公平的资源分配并保持服务质量。

公平使用的最佳实践包括:

  • 在类似用例中重用令牌,而不是创建许多单一用途的令牌
  • 定期删除未使用的令牌
  • 对于组织范围的自动化,使用 组织访问令牌
  • 监控令牌使用情况,以识别优化机会