You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过GitHub API获取GitHub Actions明文密钥用于迁移至AWS Secrets Manager

获取GitHub组织Actions密钥明文值的方案

首先明确:GitHub的官方API不会直接返回密钥的明文值——这是出于安全设计,所有存储在GitHub的Secrets都是加密存储的,只有在GitHub Actions运行时才会解密注入,外部API无法直接获取明文。

要导出密钥明文,只能通过以下两种可行方式:

方式一:通过GitHub Actions工作流批量导出

这是最安全且合规的方法,适合70+密钥的迁移场景,步骤如下:

  • 创建一个新的GitHub Actions工作流文件(比如.github/workflows/export-secrets.yml)
  • 配置工作流手动触发,遍历所有组织密钥,直接将密钥值上传到AWS Secrets Manager(避免明文暴露)
  • 示例工作流代码:
name: 导出组织密钥到AWS Secrets Manager
on:
  workflow_dispatch: # 手动触发工作流

jobs:
  export-secrets:
    runs-on: ubuntu-latest
    permissions:
      actions: read
      secrets: read
    steps:
      - name: 安装AWS CLI并配置权限
        env:
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_FOR_MIGRATION }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_KEY_FOR_MIGRATION }}
        run: |
          # 获取所有组织密钥名称
          SECRET_NAMES=$(gh api /orgs/${{ github.repository_owner }}/actions/secrets --jq '.secrets[].name')
          # 遍历每个密钥,上传到AWS Secrets Manager
          for NAME in $SECRET_NAMES; do
            SECRET_VALUE=${{ secrets[NAME] }}
            aws secretsmanager create-secret --name "github-org-secrets/$NAME" --secret-string "$SECRET_VALUE"
          done
        shell: bash

注意:需要提前在组织Secrets中配置用于迁移的AWS访问密钥,工作流会自动使用内置权限调用GitHub API和AWS接口。

方式二:手动逐个导出(不推荐)

如果不想用工作流,只能手动进入每个密钥的编辑页面,重新输入并记录明文值——但这种方式效率极低,且容易出错,不适合批量迁移场景。

关键提醒

  • 绝对不要使用第三方工具或非官方API尝试获取密钥明文,存在数据泄露风险
  • 迁移完成后,记得删除GitHub组织中不再需要的Secrets,以及工作流中配置的AWS临时访问密钥

内容的提问来源于stack exchange,提问作者Kay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 03:39:33