8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【GitHub Actions】secretsはそんなにsecretsじゃない

Posted at

はじめに

GitHub Actionsでは、リポジトリに登録された secrets をログに出すとき自動的にマスキングしてくれますが、どうやらsecretsとの完全一致の場合のみそれが発動するっぽいのでその実験結果です。

事前準備(リポジトリにsecrets追加)

以下のようにリポジトリに secret を登録します。

(リポジトリ > Settings > Secrets and variables > Actions > New repository secret

github_actions_secrets_registration.png

事前準備(コード)

リポジトリの secrets を利用するワークフローファイルを書いて動かします。

実験用.yml
name: jikken-workflow
on:
  workflow_dispatch:

jobs:
  check-secret:
    runs-on: [self-hosted, linux, x64]
    steps:
      - name: マスキングされる
        run: echo "SECRET >>> ${{ secrets.SECRET_CONTENT }}"

      - name: 1文字目の後にスペースを挿入
        run: echo "SECRET >> ${SECRET:0:1} ${SECRET:1}"
        env:
          SECRET: ${{ secrets.SECRET_CONTENT }}

      - name: 最後の文字の前にスペースを挿入
        run: echo "SECRET >> ${SECRET:0:len-1} ${SECRET:len-1}"
        env:
          SECRET: ${{ secrets.SECRET_CONTENT }}

      - name: 全ての文字の間にスペースを挿入
        run: echo "SECRET >> $(echo $SECRET | sed 's/./& /g' | sed 's/ $//')"
        env:
          SECRET: ${{ secrets.SECRET_CONTENT }}

ログ出力してみた結果

ログから機密情報が洩れております...。

github_actions_secrets_log.png

おわりに

リポジトリの管理者権限がなくても、割と簡単にsecretsは確認できてしまうので、secrets への登録はある程度リスクが伴うことを確認できました。

「マスキングされるし安全!」だなんて思わずに、登録しなくてよいものはしないようにするなど、適切に管理していきましょう。

参考

8
4
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
8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?