CLI を使った設定ファイルとポリシーの作成
設定ファイルのポリシー管理機能が Scale プランでご利用いただけるようになりました。現在 オープンプレビュー であり、 すべての側面において今後変更される可能性があります。 |
設定ファイルのポリシー管理機能がオープンプレビュー段階の間は、コンプライアンスの用途には 使用しないでください。 オープンプレビュー の間は本機能を使用できない期間が発生する可能性があります。その間、構築した設定ファイルのポリシーに対する評価が 行われない 場合があります。 |
設定ファイルのポリシー管理で CLI を使用する前に、ご使用の CLI がトークンで認証されており、更新されていることをご確認ください。 詳細については、 ローカルの CLI のインストール のページをご覧ください。 |
設定ファイルの作成
CircleCI 設定ファイルのポリシーを作成すると、違反を検出し、組織のポリシーを遵守していないビルドを停止することができます。 しかし、これにより .circleci/config.yml
ファイルのローカルでの作成に問題が生じます。 config.yml
を変更すると、パイプラインがブロックされてしまう場合があります。 それにより開発スピードが遅くなり、フラストレーションになります。
それを低減するためには、CircleCI CLI を使って CI パイプラインの外で、組織のポリシーに対して config.yml
をローカルで実行します。 設定ファイルがポリシーを遵守しているかについて、すぐにフィードバックを受け取ることができます。
以下のコマンドは、指定した設定ファイルの入力内容が組織のポリシーを遵守しているかどうかの判定をリクエストします。 コマンドは、ステータスを含む CircleCI の 判定 と発生した可能性があるすべての違反を返します。
判定コマンドの例:
circleci policy decide --owner-id $ORG_ID --input $PATH_TO_CONFIG
CircleCI の判定の例:
{
"status": "HARD_FAIL",
"hard_failures": [
{
"rule": "custom_rule",
"reason": "custom failure message"
}
],
"soft_failures": [
{
"rule": "other_rule",
"reason": "other failure message"
}
]
}
ポリシーの作成
CLI を使うと、言語を選ばない方法で任意の設定ファイルの入力内容がローカルポリシーを遵守しているかを評価できます ポリシーの作成やテストにおいてこの方法を推奨します。 ローカルディレクトリへのパスの提供以外は上記のコマンドと似ています。
指定された (再帰的に検索された) ポリシーディレクトリに存在するポリシーファイル (*.rego) によりポリシーバンドルが形成されます。
circleci policy decide --input $PATH_TO_CONFIG $PATH_TO_POLICY_DIR
`branch` や `project_id` のような `data.meta...` 値を使用するポリシーは、これらの値を `--metafile $PATH_TO_JSON` で表す JSON ファイルも提供する必要があります。
ポリシーと設定ファイルを組み合わせたテストスイートをビルドし、ローカルまたは CI で実行してから、組織のアクティブなポリシーにプッシュすることをお勧めします。
ポリシーの判定監査ログの取得
監査ログは、特定の時点でポリシーの判定が行われていることを示す証拠ドキュメントです。 監査ログには、判定に影響を及ぼした入力内容や判定結果が含まれます。
CLI には、組織のポリシー判定ログを取得する policy logs
コマンドがあります。
以下は、このコマンドを --help
フラグを使って実行した場合の出力です。
circleci policy logs --help
# Returns the following:
Get policy (decision) logs
Usage:
circleci policy logs [flags]
Examples:
policy logs --owner-id 462d67f8-b232-4da4-a7de-0c86dd667d3f --after 2022/03/14 --out output.json
Flags:
--after string filter decision logs triggered AFTER this datetime
--before string filter decision logs triggered BEFORE this datetime
--branch string filter decision logs based on branch name
--context string policy context (default "config")
-h, --help help for logs
--out string specify output file name
--owner-id string the id of the policy's owner
--project-id string filter decision logs based on project-id
--status string filter decision logs based on their status
入力
-
組織 ID の情報が要求されます。組織 ID には
--owner-id
フラグがついています。 -
このコマンドは、ログに対して以下のフィルターを受け入れます:
--after
,--before
,--branch
,--status
, and--project-id
。 これらのフィルターはオプションです。 また、監査でのニーズに応じて任意のフィルターを組み合わせて使用することも可能です。
出力
-
Stdout: 判定ログは、デフォルトで標準出力にログリストとして出力されます。
-
File: 出力はファイルに記述されます (stdout の代わりに)。 これを行うには、
--out
フラグを使用してファイルパスを指定します。
ドキュメントの改善にご協力ください
このガイドは、CircleCI の他のドキュメントと同様にオープンソースであり、 GitHub でご利用いただけます。 ご協力いただき、ありがとうございます。
- このページの編集をご提案ください (最初に「コントリビューションガイド」をご覧ください)。
- ドキュメントの問題点を報告する、またはフィードバックやコメントを送信するには、GitHub で issue を作成してください。
- CircleCI は、ユーザーの皆様の弊社プラットフォームにおけるエクスペリエンスを向上させる方法を常に模索しています。 フィードバックをお寄せいただける場合は、リサーチコミュニティにご参加ください。
サポートが必要ですか
CircleCI のサポートエンジニアによる、サービスに関する問題、請求およびアカウントについての質問への対応、設定の構築に関する問題解決のサポートを行っています。 サポートチケットを送信して、CircleCI のサポートエンジニアにお問い合わせください。日本語でお問い合わせいただけます。
または、 サポートサイト から、サポート記事やコミュニティフォーラム、トレーニングリソースをご覧いただけます。
CircleCI Documentation by CircleCI is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.