設定ファイルのポリシーに関するリファレンス
設定ファイルのポリシー管理機能が Scale プランでご利用いただけるようになました。現在 オープンプレビュー であり、 この機能のすべての側面が変更される可能性があります。 |
設定ファイルのポリシー管理機能がオープンプレビュー段階の間は、コンプライアンスの用途には 使用しないでください。 オープンプレビュー の間は本機能を使用できない期間が発生する可能性があります。その間、構築した設定ファイルのポリシーに対する評価が 行われない 場合があります。 |
このリファレンスのページでは、ポリシーを記述する際に役立つ ヘルパー や CircleCI 固有の関数を紹介します。 これらのヘルパーを使用すると、よりクリーンで定型句の少ないポリシーを作成できます。
circle-policy-agent
パッケージには、設定ファイルのポリシーの一般的なユースケースで使用される組み込み関数が含まれています。 policy-service
、 circle-cli
、または circle-policy-agent
により評価されたポリシーはすべて、これらの関数にアクセスできます。 これはつまり、circleci.config
というパッケージ名は予約されているということです。
CircleCI Rego のヘルパー
jobs
jobs
は、指定された CircleCI 設定ファイル内のジョブを含む Rego オブジェクトです。 ジョブに関連付けられているポリシーで使用できます。
定義
jobs = []string
jobs
オブジェクトの例
[
"job-a",
"job-b",
"job-c"
]
使用法
package org
policy_name["example"]
import future.keywords
import data.circleci.config
jobs := config.jobs
require_jobs
この関数を使用する場合、設定ファイルにジョブ名に基づくジョブを含める必要があります。 必要なジョブリストにある各ジョブは、設定ファイル内の少なくとも 1 つのワークフローに含まれていなければなりません。
定義
require_jobs([string])
returns { string }
使用法
package org
import data.circleci.config
policy_name["example"]
require_security_jobs = config.require_jobs(["security-check", "vulnerability-scan"])
enable_rule["require_security_jobs"]
hard_fail["require_security_jobs"]
orbs
orbs
は、指定された設定ファイル内の Orb やバージョンを含んだ Rego オブジェクトです。 Orb に関連付けられているポリシーで使用できます。
定義
orbs[string] = string
orbs
オブジェクトの例
{
"circleci/security": "1.2.3",
"circleci/foo": "3.2.1"
}
使用法
package org
import data.circleci.config
policy_name["example"]
my_orbs := config.orbs
require_orbs
この関数を使用する場合、設定ファイルに Orb 名に基づく Orb を含める必要があります。 Orb リストにはバージョンは含めないでください。
定義
require_orbs([string])
returns { string: string }
使用法
package org
import data.circleci.config
policy_name["example"]
require_security_orbs = config.require_orbs(["circleci/security", "foo/bar"])
enable_rule["require_security_orbs"]
hard_fail["require_security_orbs"]
require_orbs_version
この関数を使用する場合、ポリシーに Orb 名とバージョンに基づく Orb を含める必要があります。
定義
require_orbs_version([string])
returns { string: string }
使用法
package org
import data.circleci.config
policy_name["example"]
require_orbs_versioned = config.require_orbs_version(["circleci/security@1.2.3", "foo/bar@4.5.6"])
enable_rule["require_orbs_versioned"]
hard_fail["require_orbs_versioned"]
ban_orbs
この関数を使用する場合、設定ファイルに Orb 名に基づく Orb が含まれていると、ポリシー違反になります。 Orb リストにはバージョンは含めないでください。
定義
ban_orbs_version([string])
returns { string: string }
使用法
package org
import data.circleci.config
policy_name["example"]
ban_orbs = config.ban_orbs(["evilcorp/evil"])
enable_rule["ban_orbs"]
hard_fail["ban_orbs"]
ban_orbs_version
この関数を使用する場合、設定に Orb 名とバージョンに基づく Orb が含まれていると、ポリシー違反になります。
定義
ban_orbs_version([string])
returns { string: string }
使用法
package org
import data.circleci.config
policy_name["example"]
ban_orbs_versioned = config.ban_orbs_version(["evilcorp/evil@1.2.3", "foo/bar@4.5.6"])
enable_rule["ban_orbs_versioned"]
hard_fail["ban_orbs_versioned"]
resource_class_by_project
この関数はリソースクラスからプロジェクト ID セットへのマッピングを受け入れます。 マッピングで定義されたリソースクラスは、関連付けられたプロジェクト用に予約されます。 マッピングに含まれていないリソースクラスはすべてのプロジェクトで使用できます。
定義
resource_class_by_project({
"$RESOURCE_CLASS": {$PROJECT_IDS...},
...
})
returns { ...reasons: string }
使用法
package org
import future.keywords
import data.circleci.config
policy_name["example"]
check_resource_class = config.resource_class_by_project({
"large": {"$PROJECT_UUID_A","$PROJECT_UUID_B"},
})
enable_rule["check_resource_class"]
hard_fail["check_resource_class"]
ドキュメントの改善にご協力ください
このガイドは、CircleCI の他のドキュメントと同様にオープンソースであり、 GitHub でご利用いただけます。 ご協力いただき、ありがとうございます。
- このページの編集をご提案ください (最初に「コントリビューションガイド」をご覧ください)。
- ドキュメントの問題点を報告する、またはフィードバックやコメントを送信するには、GitHub で issue を作成してください。
- CircleCI は、ユーザーの皆様の弊社プラットフォームにおけるエクスペリエンスを向上させる方法を常に模索しています。 フィードバックをお寄せいただける場合は、リサーチコミュニティにご参加ください。
サポートが必要ですか
CircleCI のサポートエンジニアによる、サービスに関する問題、請求およびアカウントについての質問への対応、設定の構築に関する問題解決のサポートを行っています。 サポートチケットを送信して、CircleCI のサポートエンジニアにお問い合わせください。日本語でお問い合わせいただけます。
または、 サポートサイト から、サポート記事やコミュニティフォーラム、トレーニングリソースをご覧いただけます。
CircleCI Documentation by CircleCI is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.