メインコンテンツまでスキップ

infraguard policy

コンプライアンスポリシーを管理します。

サブコマンド

list

利用可能なすべてのポリシーをリスト:

infraguard policy list

get

特定のポリシーの詳細を取得:

infraguard policy get rule:aliyun:ecs-instance-no-public-ip
infraguard policy get pack:aliyun:mlps-level-3-pre-check-compliance-pack

update

ポリシーライブラリを更新:

infraguard policy update

new

新しいカスタムルールをスキャフォールディング(Rego のスケルトン + テストフィクスチャ):

# ROS と Terraform の両方向けにルールを生成
infraguard policy new ecs-instance-must-have-owner-tag \
--iac both --severity medium \
--resource-type ALIYUN::ECS::Instance \
--tf-resource-type alicloud_instance

# コンプライアンスパックのスケルトンを生成
infraguard policy new --pack my-team-baseline

生成されたファイルは --dir(デフォルト ./policies)配下に置かれ、infraguard scan -p ./policies <template> および infraguard policy test でそのまま使用できます。カスタムルールの作成を参照してください。

フラグ説明デフォルト
--iac対象 IaC:rosterraform、または bothboth
--severityhighmedium、または lowmedium
--resource-typeROS リソースタイプ(繰り返し可能)
--tf-resource-typeTerraform リソースタイプ(繰り返し可能)
--dir出力ルートディレクトリ./policies
--name-en / --name-zhルール名ルール ID
--desc-en / --desc-zhルールの説明TODO
--no-testテストフィクスチャを生成しないfalse
--force既存ファイルを上書きするfalse
--pack指定した ID でパックのスケルトンを生成

test

フィクスチャを使用してルールの動作テストを実行:

infraguard policy test --dir ./policies
infraguard policy test --dir ./policies --rule my-rule --iac terraform
infraguard policy test --dir ./policies --format json

各ルールについて、<dir>/testdata/aliyun/rules/<rule>/ 配下のフィクスチャが評価されます:compliant フィクスチャはそのルールの違反をまったく生成してはならず、violation フィクスチャは少なくとも 1 つ生成しなければなりません。終了コードは、すべてのケースが合格した場合は 0、失敗の場合は 1、フィクスチャが見つからない場合は 2--allow-empty を指定した場合を除く)です。ルールのテストを参照してください。

フラグ説明デフォルト
--dirrules/testdata/ を含むルートディレクトリ./policies
--rule指定したルール ID のみをテスト(繰り返し可能)すべて
--iacテストする IaC:rosterraform、または bothboth
--format出力形式:table または jsontable
--allow-emptyフィクスチャが見つからない場合でも 0 で終了するfalse

validate

カスタムポリシーを検証:

infraguard policy validate my-rule.rego
infraguard policy validate ./policies/ --lang ja

format

ポリシーファイルをフォーマット:

infraguard policy format rule.rego
infraguard policy format rule.rego --write
infraguard policy format rule.rego --diff

clean

ユーザーポリシーディレクトリをクリーン:

infraguard policy clean # 確認付きの対話モード
infraguard policy clean --force # 確認をスキップ
infraguard policy clean -f # 短いフラグ

~/.infraguard/policies/からすべてのポリシーを削除します。埋め込みポリシーやワークスペースポリシーには影響しません。

詳細については、ポリシーの管理を参照してください。