5
0

More than 1 year has passed since last update.

CircleCI に登録している secrets を確認する

Last updated at Posted at 2023-01-12

はじめに

最近、 CircleCI に登録していた secrets を確認することがありました。
CLI tool の CircleCI-Env-Inspector が公開されていたのでその使い方を記載します。

CircleCI-Env-Inspector について

CircleCI に登録している secrets を出力する Node.js 制の CLI tool です。

出力出来る secrets は以下 3 つです。

  • Organization に定義する "Context variables"
  • Project に定義する "Project environment variables", "Project SSH keys"

準備

CircleCI-Env-Inspector を実行するためには以下が必要です。

  • (必須) CircleCI Personal API Token
  • Docker, Shell を実行出来る環境
    • 用意できない場合は、 run.sh, Dockerfile を確認し実行環境を用意します

CircleCI Personal API Token の発行

User Settings の Personal API Tokens にアクセスし Token を発行します。

今回は、 Token Name を CircleCI-Env-Inspector とし Token を発行します。
Token は CircleCI-Env-Inspector を実行する際に入力します。安全な場所に保存しておきましょう。

Personal API Tokens (一覧) Personal API Tokens (発行)
image.png image.png

CircleCI-Env-Inspector を実行する

CircleCI-Env-Inspector を clone します。

# HTTPS を利用する場合
git clone https://github.com/CircleCI-Public/CircleCI-Env-Inspector.git
# SSH を利用する場合
git clone git@github.com:CircleCI-Public/CircleCI-Env-Inspector.git
# GitHub CLI を利用する場合
gh repo clone CircleCI-Public/CircleCI-Env-Inspector

clone が完了したら CircleCI-Env-Inspector directory に移動します。

> cd path/to/CircleCI-Env-Inspector

その後、run.sh を実行します。
? Enter your CircleCI API token [hidden] と表示実行が中断します。
先ほど発行した CircleCI Personal API Token を入力し Enter を押下します。

> ./run.sh
Building Docker image...
[+] Building 16.1s (10/10) FINISHED
 => [internal] load build definition from Dockerfile                                                0.0s
 => => transferring dockerfile: 36B                                                                 0.0s
 => [internal] load .dockerignore                                                                   0.0s
 => => transferring context: 2B                                                                     0.0s
 => [internal] load metadata for docker.io/library/node:18                                          2.8s
 => [auth] library/node:pull token for registry-1.docker.io                                         0.0s
 => [internal] load build context                                                                   0.0s
 => => transferring context: 97.55kB                                                                0.0s
 => [1/4] FROM docker.io/library/node:18@sha256:d871edd5b68105ebcbfcde3fe8c79d24cbdbb30430d9bd6251  0.0s
 => CACHED [2/4] WORKDIR /project                                                                   0.0s
 => [3/4] COPY . .                                                                                  0.1s
 => [4/4] RUN npm install && npm run build                                                         11.4s
 => exporting to image                                                                              1.6s
 => => exporting layers                                                                             1.6s
 => => writing image sha256:cc1e35f54d28648a7fea5c5057cefe21b0ab4e7644395b402bfe52a41583e9f8        0.0s
 => => naming to docker.io/library/cci-env-inspector                                                0.0s
Running Docker image...
? Enter your CircleCI API token [hidden]
Found X accounts.
Fetching data for xxxxxx from GitHub...  1/X
  Fetching Contexts...
  Fetching Projects...
  Fetching Project Variables...
Fetching data for mziyut from GitHub...  2/X
  Fetching Contexts...
  Fetching Projects...
  Fetching Project Variables...

 Done!
 Data saved to circleci-data.json
Extracting data from container...
Cleaning up...
Done.

実行が完了すると 同 directory に circleci-data.json が生成されます。
※ 一部の文字を xx に置換しています。

circleci-data.json
[
  {
    "xxxx": {
      "contexts": [
        {
          "name": "contexts-name-here",
          "id": "xxxx-xxxx-xxxx-xxxx-xxxx",
          "url": "https://app.circleci.com/settings/organization/gh/xxxx/contexts/xxxx-xxxx-xxxx-xxxx-xxxx",
          "variables": []
        }
      ],
      "projects": [
        {
          "name": "projects-name-here-1",
          "url": "https://app.circleci.com/settings/project/gh/xxxx/projects-name-here-1/environment-variables",
          "variables": [
            {
              "name": "VARIABLES_NAME",
              "value": "xxxxxxxx"
            }
          ],
          "project_keys": []
        },
        {
          "name": "projects-name-here-2",
          "url": "https://app.circleci.com/settings/project/gh/xxxx/projects-name-here-2/environment-variables",
          "variables": [],
          "project_keys": [
            {
              "type": "project_key-type",
              "preferred": true,
              "created_at": "xxxx-xxxx-xxxx:xxxx:xxxx.xxxxZ",
              "public_key": "xxxx",
              "fingerprint": "xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
            }
          ]
        }
      ],
      "unavailable": []
    }
  },
  {
    "mziyut": {
      "contexts": [],
      "projects": [],
      "unavailable": []
    }
  }
]

生成された JSON ファイル内の "Context variables", "Project environment variables", "Project SSH keys" を確認し必要な対応を行います。

最後に

急遽、 CircleCI に登録していた secrets を確認する必要が生じましたが、CLI tool の CircleCI-Env-Inspector が公開されたことで簡単に確認することができました。
簡単に確認できるよう CircleCI-Env-Inspector を準備、公開頂いたことに感謝しています。

References

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0