Skip to main content
パックとは、GitHubリリースとして公開されたポリシーのセットです。コマンド1つでインストールでき、実行前にリリース自身のチェックサムが検証され、ダイジェストが記録されるため、インストール後にパックの内容が変わることはありません。

Failproof AI のポリシーをインストールする

これにより、npmパッケージ内に同梱されたコピーから弊社公開のポリシーセットがインストールされます。ネットワーク不要で、プロキシ環境でも失敗しません。一部だけ取り込む場合は次のようにします。
failproofai pack list で、パックが提供するすべてのカテゴリを確認できます。

インストール前にパックの内容を確認する

パックに含まれるすべてのポリシーをカテゴリ別にグループ化して一覧表示します。作者がデフォルトで有効にしているものと、オプトインのものが区別されます。マニフェストのみを読み込むため、エントリーアーティファクトはダウンロードもインポートもされません。つまり、見知らぬパックを参照しても、見知らぬコードが実行されることはありません。マニフェストはリリースのSHA256SUMSと照合されるため、表示されている内容がそのままインストールされます。 ソースを指定せずにfailproofai pack listを実行すると、現在インストール済みのパックが一覧表示されます。

他のユーザーのパックをインストールする

以下の形式はいずれも使用できます。手元にあるものをそのまま貼り付けてください。 タグを指定しない場合、最新リリースをインストールして固定し、選択されたタグを通知します。記録される内容は常に特定のリリース1つを指すため、再インストール時にバージョンがずれることはありません。

パックの一部だけ取り込む

デフォルトでは、パック内のすべてではなく、作者が無人実行しても安全とマークしたパック自身のデフォルトポリシーのみが適用されます。
--category--policyは和集合として組み合わせられます(--only--policyの別名として使用できます)。新しいバージョンで再追加した場合、選択した内容は維持され、残りが有効化し直されることはありません。

有効なポリシーを管理する

名前だけを指定した場合、その名前の組み込みポリシーが存在すればそちらが対象になります。パックのコピーを明示的に指定する場合は次のようにします。
パックが提供するポリシーの名前が有効な組み込みポリシーと重複している場合、組み込みポリシーが実行され、パックのコピーはスキップされます。これは、同じガードが2回評価されるのを防ぐためです。パックのコピーを使用したい場合は、組み込みポリシーを無効にしてください。

Failproof AI のポリシーの提供元

coreは、npmパッケージ内に同梱されたコピーを読み込みます。同じセットはGitHubリリースとしても公開されており、特定のバージョンが必要な場合はそちらからインストールできます。

整合性検証でできること・できないこと

SHA256SUMSはアーティファクトと同じリリースに同梱されているため、署名ではなく、誰が公開したかを証明するものではありません。証明されるのは、バイト列がそのリリースで公開されたものと一致することです。パック追加時にダイジェストが記録され、インポートのたびに再検証されるため、インストール後にパックの内容が変わることはありません。リリースのタグを付け替えたりアセットを差し替えたりしたリポジトリは、別のコードを静かに実行する代わりに、読み込みに失敗します。 インストール時には、パックが一度インポートされ、自身のマニフェストと照合されます。アーティファクトのパースに失敗したり、宣言内容と異なるものを登録しようとするパックは、アクティベーションされる前に拒否されます。インストールは成功したが次のツール呼び出しで失敗する、といった事態にはなりません。

パックが読み込まれない場合

このマシンで適用するよう設定されているが実行できないパックが存在する場合、対象ポリシーが適用するはずだったイベントは、サイレントに許可されるのではなく拒否されます。詳しくはFailure behaviorを参照してください。failproofai pack listはその状態のパックを表示し、ゼロ以外の終了コードで終了します。

オフライン環境とミラー

独自パックの公開方法については、Publish a packを参照してください。