Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions .github/workflows/actions-security-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,17 @@ name: Actionsのセキュリティチェック
# artipacked actions/checkout に persist-credentials: false を足してください
# (checkout は既定で書き込み権限つきトークンを .git に残すため)
# excessive-permissions permissions: を必要最小限に絞ってください
# template-injection ${{ }} を run: に直接書かず、env: 経由で渡してください
# template-injection テンプレート式を run: に直接書かず、env: 経由で渡してください
#
# 個別に許容したい指摘がある場合は、その行に次のコメントを付けられます:
# # zizmor: ignore[ルール名]
#
# 詳細な説明: https://docs.zizmor.sh/audits/

# 注意: このファイルの中に、テンプレート式の記法をリテラルで書かないこと。
# 解説目的でも Actions がそれを式として評価しようとし、ワークフロー全体が
# 起動できなくなる(ジョブが1つも作られず failure になる)。

on:
push:
branches: [main]
Expand Down Expand Up @@ -65,7 +69,7 @@ jobs:
echo "| \`unpinned-uses\` | サードパーティの \`uses:\` をコミットSHAで指定する(例: \`foo/bar@<SHA> # v1\`)|"
echo "| \`artipacked\` | \`actions/checkout\` に \`persist-credentials: false\` を足す |"
echo "| \`excessive-permissions\` | \`permissions:\` を必要な範囲まで絞る |"
echo "| \`template-injection\` | \`\${{ }}\` を \`run:\` に直書きせず \`env:\` 経由にする |"
echo "| \`template-injection\` | テンプレート式を \`run:\` に直書きせず \`env:\` 経由で渡す |"
echo ""
echo "意図的にその書き方をしている場合は、該当行に \`# zizmor: ignore[ルール名]\` を付けると除外できます。"
echo ""
Expand Down
28 changes: 28 additions & 0 deletions .github/zizmor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Actionsのセキュリティチェック(zizmor)の設定
#
# unpinned-uses: uses: の書き方をどこまで厳しくするか
#
# GitHub 公式(actions/*)と自社(CALIL/*)は、タグやブランチでの指定を許容します。
# これらの参照先を差し替えられるのは GitHub 自身か自社だけで、
# 第三者が公開するアクションとはリスクの質が違うためです。
#
# それ以外はすべてコミットSHAでの固定を必須にします。第三者のアクションは
# タグを後から別のコミットに付け替えられるため、タグ指定だと
# 「レビューしたコードとは違うものが動く」ことが起こりえます。
#
# 第三者のアクションを追加するときの書き方:
# - uses: foo/bar@0123456789abcdef0123456789abcdef01234567 # v1.2.3
# SHA はタグのページか `gh api repos/foo/bar/commits/v1.2.3 --jq .sha` で取れます。
# Dependabot はこの形式を認識し、更新時に SHA とコメントの両方を書き換えます。
#
# 個別に許容したい指摘は、ワークフロー側の該当行に次のコメントを付けて除外します:
# # zizmor: ignore[ルール名]
#
# 設定の詳細: https://docs.zizmor.sh/configuration/
rules:
unpinned-uses:
config:
policies:
"actions/*": ref-pin
"CALIL/*": ref-pin
"*": hash-pin