GitHub Actions(GH-200) 無料問題 9 / 10 ・ 分野5: 自動化のセキュリティ保護と最適化
トップレベルpermissionsでcontents: readとpackages: readを指定した。publishジョブにはcontents: readとpackages: writeを指定し、testジョブにはpermissionsを書いていない。push実行時のpackages権限の組合せはどれか。上位ポリシーによる制限はない。
- testはwrite、publishはwriteになる
- testはread、publishはreadになる
- testはread、publishはwriteになる
- testはwrite、publishはreadになる
正解と解説を見る
正解: C
正解の理由
permissionsはジョブごとに設定できる。testはワークフローレベルのpackages: readを使い、publishは自分のジョブ定義にあるpackages: writeを使うため、両ジョブの権限は異なる。
違う選択肢
「testはwrite、publishはwriteになる」…publishのジョブ定義にある書込権限は、別のtestジョブへ波及しない。
「testはwrite、publishはreadになる」…ジョブ固有の指定を逆向きに適用している。publishの指定がtestへ適用されることはない。
「testはread、publishはreadになる」…publishではジョブレベルのpermissionsによってpackagesがwriteへ変更される。
押さえどころ
権限を追加するジョブのYAML階層を確認する。同じワークフローに含まれることだけを理由に、あるジョブの権限を別ジョブへ共有する仕組みではない。