クラウドポリシー: カスタム
これは、カスタムクラウドポリシーを作成するためのハウツーガイドです。
- ポリシーを管理するには、「 クラウドポリシーを参照してください。
- クラウドの検出結果を表示および管理するには、「 クラウドの検出結果を参照してください。
- 検出結果のステータスと検出結果のライフサイクルについては、「 検出結果のライフサイクルを参照してください。
- 検出結果の深刻度の仕組みについては、「 検出結果の深刻度を参照してください。
組織に関連する特定の問題に対処するためのカスタムポリシーを作成します。カスタムポリシーは、以下に基づいて設定できます。
- 使いやすい カスタムポリシーテンプレート。
- Explorer クエリ。探索 エクスプローラーの詳細については、こちらをご覧ください。
- 新規またはインポートされた カスタム Rego ポリシー (早期アクセス) (早期アクセス)。
組織レベルまたはアカウント (フォルダー) のグループ内で作成されたカスタムポリシーは、今後作成される子アカウントを含め、すべての子アカウントに継承されます。カスタムポリシーを クラウドの検出結果 できるのは、自分が作成した元のフォルダーやアカウントからのみです。たとえば、最上位の AWS フォルダーからカスタムポリシーを作成した場合、その AWS フォルダー内の子フォルダー/アカウントからポリシーを有効化/無効化することはできません。この場合、上位の AWS フォルダーで定義したステータスは、すべての子フォルダーや子アカウントに反映されます。フォルダーの詳細については、「 アカウント階層とフォルダー を参照してください。
自動化を作成して [すべてのポリシー] に適用することを選択した場合、選択した自動化ターゲット (アクション) は作成するカスタムポリシーにも適用されます。
カスタムポリシーの追加
カスタムポリシーを追加する方法
- (オプション)[Organization] (組織) ドロップダウンでアカウント階層とフォルダーを選択して、カスタムポリシーの範囲をクラウドアカウントの特定のサブセットに制限します。デフォルトでは、組織全体 (すべてのアカウント) が選択されています。
- 左側のナビゲーションペインで、[ポリシー] > [クラウドポリシー] の順にクリックします。
- [カスタム] タブを選択します。
- [+ カスタムポリシーの作成] をクリックします。[Create Custom Policy] (カスタムポリシーの作成) ウィザードが開きます。
-
ポリシーのタイプを選択します。
クエリ
クエリからのカスタムポリシーの作成クエリをカスタムポリシーに変換します。たとえば、一般に公開されている EC2 インスタンスを機密タグで追跡するためのポリシーを作成します。クエリを使用するには、 クエリの選択をクリックして既存のクエリを選択するか、ゼロから作成します。
- リンクされたクエリを削除したり、プライベートにしたり、サポートされていない構文で編集したりすることはできません。
- 既存のクエリを選択して編集する場合は、三点リーダーメニューを開き、[ リンク解除 をクリックしてフィルターを変更します。ポリシーは元のクエリと同期されなくなります。
テンプレート
組織に関連する特定の問題に対処するための使いやすいカスタムポリシーテンプレート
- このポリシーに使用するテンプレートを選択し、 選択をクリックします。
-
選択したテンプレートに応じて、ポリシーを適用するタイミングを定義する条件を選択する必要があります。たとえば、 アクセス許可のモニタリング > これらのプリンシパルはこれらのリソースに対してこれらのアクセス許可を持つべきではない を選択した場合、ポリシーが適用されるプリンシパル、アクセス許可 (特定のアクションまたは大きなカテゴリのいずれか)、リソースを選択する必要があります。任意の条件に対して、1 つ以上のエンティティを選択できます。
Explorer ベースのテンプレート: 一部のテンプレートでは、個別のパラメーターピッカーの代わりにエクスプローラークエリエディターが使用されます。これらのテンプレートの場合、右側のパネルに事前構築済みのクエリが表示されます。Explorer クエリエディターを使用してクエリを調整できます。詳細は、 エクスプローラーを参照してください。 -
ポリシーを作成する前に プレビュー ボタンをクリックすると、一致する プリンシパル と リソースの数が表示されます。カウントをクリックすると、一致する特定のエンティティが表示されます。
複数選択用の論理演算子
- タグ/ラベル: 複数のタグまたはラベルを選択すると (たとえば、 これらのタグを持つリソース)、 ALL 論理演算子が適用され、ポリシーは指定されたすべてのタグまたはラベルが識別された場合にのみトリガーされます。このコンテキストで ANY ロジックをタグ/ラベルに適用するには、複数のカスタムポリシーを作成し、トリガーとする特定のタグ/ラベルを使用して各ポリシーを設定します。
- その他すべての条件: 複数のエンティティ/リソースを選択した場合、 ANY 論理演算子が適用されます。これは、指定されたリソースのいずれかが識別された場合にポリシーがトリガーされることを意味します。
-
次のテンプレートでは、 ALL 演算子と ANY 演算子のどちらを適用するかを選択できます。また、これらのテンプレートの除外を定義することもできます。
- これらのプリンシパルのみが、これらのリソースに対してこれらのアクセス許可を持つ必要がある
- これらのプリンシパルはこれらのリソースで、これらのアクセス許可を持つべきではない
- これらのプリンシパルはこれらのリソースに対してこれらのロールを持つべきではない
Rego (早期アクセス)
標準の Rego v2 構文でカスタムポリシーを記述します。
- ポリシーが評価するリソースタイプを選択します。
- 新しいポリシーを作成するか、 既存のポリシーから変更をインポート をクリックして組み込みポリシーを検索して選択します。
- コードをテスト実行するには、[テスト データ] セクションで [ 単一 または バッチ をクリックして 1 つ以上の既存のリソースを選択し、[出力] セクションで [ 実行 をクリックします。
- わかりやすい名前を入力し、オプションで説明を入力します。
- ポリシーに深刻度を割り当てます。深刻度は、ポリシーによってトリガーされた検出結果の深刻度レベルを決定します。
- (オプション)セキュリティチームに明確なガイダンスを提供するため、カスタム修正手順を入力します。
- 完了したら、[作成] をクリックします。
カスタム Rego ポリシー (早期アクセス)
カスタム Rego ポリシーは、Open Policy Agent (OPA) ポリシー言語である Rego を使用して、単一のリソースに対して属性レベルのチェックを記述します。これらは、事前定義されたパラメーターを通じて一般的なチェックをカバーする カスタムポリシーテンプレートと、リソースを視覚化する簡単な方法を提供する探索 エクスプローラーの間に配置されています。
次のいずれかに当てはまる場合は、Rego を使用します。
- あなたはすでに Rego の専門知識を持っており、テンプレートやグラフ クエリよりも Rego を好みます。
- テンプレートやグラフクエリがサポートする範囲を超える条件が必要です。
- Rego で記述された既存のポリシーがあり、それを Tenable One Cloud Exposure で再利用したいと考えています。
クロスリソースロジックが必要な場合は、代わりに Explorer クエリを使用します。
組み込みポリシーかカスタムポリシーかにかかわらず、Rego で記述された既存のポリシーから開始することで、カスタムポリシーの開発をスピードアップします。このアプローチを使用して、組み込みポリシーをニーズに合わせて調整することもできます。組み込みポリシーをコピーし、コピー内のロジックを調整し、元のポリシーを無効にします。
Rego ベースのポリシーは作成されると、他のカスタムポリシーと同じように動作します。調査結果は、同じ形式、ダッシュボード、レポート、自動化、チケッティング、除外、コンプライアンスのフレームワークに従い、同じロールベースのアクセス制御を使用します。詳細については クラウドの検出結果 。
ポリシー評価
Rego ベースの各カスタムポリシーは、一度に 1 つのリソースを評価します。ポリシーは、未加工のプロバイダー JSON 形式でリソースを入力として受け取ります。ポリシーは、評価中に他のリソースを取得、トラバース、または参照することはできません。すべての評価は、1 つの状態で終了します。
| 状態 | 意味 |
|---|---|
| スキップ | リソースはポリシーのタイプと一致しますが、エントリ条件外です。 |
| 合格 | リソースがポリシー評価に合格した。 |
| 失敗 | リソースはポリシー評価に失敗し、検出結果が生成されます。 |
| エラー | ランタイムエラー (例: 無効なリソース JSON、ロジックが合格と不合格の両方を返す) のために評価が完了しませんでした。この状態はエンジンによって割り当てられます。 |
ヘルパー関数
ヘルパー関数は、自分で記述する代わりにカスタム Rego ポリシーから呼び出す、事前に構築された小さなロジックです。値がnullであるか、空であるか、または大文字と小文字でしか異なるかを確認するには、通常、数行のRegoが必要です。ヘルパー関数がそのチェックを 1 つの呼び出しにラップします。
クラウドサイバーエクスポージャー は、ネットワーク、ファイル、ホストへのアクセスなしの副作用のない動作に関するすべての許可リストに登録されたヘルパー関数を作成および監査します。許可リストは OPA が更新されるたびに再検証されるため、新しいヘルパー関数はそのレビュー後にのみ使用可能になります。
ヘルパー関数を使用するには、Rego エディターの上にある [ヘルパー関数] をクリックし、関数をポリシーにコピーします。
次の表に、許可リストに登録された各ヘルパー関数とその動作を示します。
| ヘルパー関数 | 動作 |
|---|---|
| equals_ignore_case(value_1, value_2) | 大文字と小文字を無視して、 value_1 と value_2 が等しいかどうかを判断します。大文字と小文字に関係なく一致する場合は true を返します。それ以外の場合は falseです。 |
| get_days_ns(days) | 指定された日数をナノ秒の期間で返します。 |
| is_false(value) | 表される値が falseかどうかを判断します。文字列形式が "false" (大文字と小文字を区別しない) に等しい場合に true を返します。それ以外の場合は falseです。 |
| is_true(value) | 表される値が trueかどうかを判断します。文字列形式が "true" (大文字と小文字を区別しない) に等しい場合に true を返します。それ以外の場合は falseです。 |
| is_null_or_empty(value) | 値が欠落しているか空であるかを判別します。null、空の文字列、空の配列、または空のオブジェクトの場合、 true を返します。それ以外の場合は falseです。 |
カスタムポリシーテンプレート
クラウドサイバーエクスポージャー は、カスタムポリシーの作成に使用できる多数のテンプレートを提供しています。これらのテンプレートを使用すると、モニタリングするリソースとその方法を柔軟に定義できます。たとえば、「 これらのアイデンティティのアクティビティをすべてモニタリング する」というテンプレートを使用して、緊急アクセス用アカウントでのアクティビティをモニタリングするカスタムポリシーを作成し、そのアカウントが認証されていないアイデンティティに使用されないようにすることができます。または、バケット/キー/シークレットの変更をモニタリングするテンプレートを使用して、環境内の重要な「価値のある」資産をモニタリングすることもできます。
以下のカテゴリ別のテンプレートは、特定のユースケースに対処するカスタムポリシーの作成に使用できます。
| カテゴリ | クラウド | テンプレート | 潜在的なユースケース |
|---|---|---|---|
| アクセス許可のモニタリング | AWS | これらのプリンシパルのみがこれらのアクセス許可を持つ必要がある | 最重要データの保護特定のアイデンティティが機密度の高いリソースにアクセスできないようにします。 |
| AWS | これらのプリンシパルのみがこれらのリソースで、これらのアクセス許可を持つ必要がある | 職務の分離。特定のアイデンティティのみがこのリソースにアクセスできる必要がある。 | |
| Azure/GCP | これらのプリンシパルのみがこれらのリソースで、これらのアクセス許可を持つ必要がある | 職務の分離。特定のアイデンティティのみがこのリソースにアクセスできる必要がある。 | |
| AWS/Azure/GCP | これらのプリンシパルはこれらのリソースで、これらのアクセス許可を持つべきではない | 最重要データの保護特定のアイデンティティが機密度の高いリソースにアクセスできないようにします。 | |
| Azure/GCP | これらのプリンシパルはこれらのリソースで、これらのロールを持つべきではない | なりすまし。機密度の高いロールへのアクセスの変更をモニタリングします。 | |
| AWS | これらのロールには、この参照ロールに一致するポリシーがある必要があります 注意: 組織のロールを使用し、ロールのアカウントごとのインスタンスを事前定義されたテンプレートに準拠させたい場合は、このテンプレートを使用することで、アタッチされたポリシーのセットが選択した参照ロールから逸脱したときにアラートを受け取れます。 |
||
| AWS | これらのバケットのポリシー、ACL、ブロックパブリックアクセスの設定変更をモニタリングする | 最重要データの保護機密度の高いバケット設定の変更に関するアラートを受け取ります。 | |
| AWS | これらのキーのアクセス許可変更をモニタリングする | 最重要データの保護キーのポリシーの変更に関するアラートを受け取ります。 | |
| AWS | これらのシークレットのポリシー変更をモニタリングする | 最重要データの保護特定のシークレットポリシーの変更に関するアラートを受け取ります。 | |
| AWS | これらのプリンシパルにアタッチされたアイデンティティ関連ポリシーの変更をモニタリングする | 権限昇格を防ぐための、影響の大きいプリンシパルに対する IMonitor ポリシーの変更。 | |
| AWS | これらのロールにおける信頼ポリシーの変更をモニタリングする | なりすまし。機密度の高いロールへのアクセスの変更をモニタリングします。 | |
| Azure | これらのマネージド ID は、これらのリソースに対してこれらのアクセス許可を持つべきではない | 最重要データの保護特定のアイデンティティが機密度の高いリソースにアクセスできないようにします。 | |
| アクティビティをモニタリング | AWS/Azure/GCP |
これらのアイデンティティ のアクティビティをすべてモニタリングする 重要な注意事項:
|
緊急アクセス用アカウントをモニタリングします。緊急アクセス用アカウントの使用についてアイデンティティのアクティビティをモニタリングします。 |
| 機密データの監視 | AWS/Azure/GCP | この機密データは これらのリソースにあるべきではありません | 本来保存されるべきでない制限 された境界内に 保存されている機密データを検出します。データスプロールをモニタリングし、データ境界のコンプライアンスを遵守するために使用します。データ境界と監視データのスプロール。 |
| AWS/Azure/GCP | この機密データは これらのリソースにのみ存在すべきです | データの保存が許可されている 境界の外部に保存され ている機密データを検出します。データスプロールをモニタリングし、機密データが承認されたストレージまたは環境内に確実に残るようにするために使用します。データ境界と監視データのスプロール。 | |
| リソースをモニタリング | AWS | これらのセキュリティグループのルール変更をモニタリングする | ネットワークセキュリティ。機密度の高いセキュリティグループへの変更をモニタリングします。 |
| AWS | これらのバケットのポリシー、ACL、ブロックパブリックアクセスの設定変更をモニタリングする | 最重要データの保護機密度の高いバケット設定の変更に関するアラートを受け取ります。 | |
| AWS | これらのキーのアクセス許可変更をモニタリングする | 最重要データの保護キーのポリシーの変更に関するアラートを受け取ります。 | |
| AWS | これらのシークレットのポリシー変更をモニタリングする | 最重要データの保護特定のシークレットポリシーの変更に関するアラートを受け取ります。 | |
| AWS | 作成されたこれらのタイプのIAM プリンシパルをモニタリングする | アクセスのモニタリング新しく作成されたアイデンティティをモニタリングします。 | |
| AWS | これらのロールにおける信頼ポリシーの変更をモニタリングする | なりすまし。機密度の高いロールへのアクセスの変更をモニタリングします。 | |
| AWS/Azure/GCP | これらのリソース はコードとして管理される必要がある | コードを介して管理されるリソースを特定します。 | |
| すべて | これらのリソースには次のタグを付ける必要があります | ベストプラクティスを実施する。組織のタグ付けポリシーを強制します。 | |
| AWS | これらのアクセス許可セット がユーザーまたはグループに割り当てられるタイミングをモニタリングする | アクセスのモニタリングAWS Identity Center のアクセス許可セットの変更をモニタリングします。 | |
| AWS | これらのアクセス許可セットが作成または更新されるタイミングをモニタリングする | アクセスのモニタリングAWS Identity Center のアクセス許可セットの変更をモニタリングします。 | |
| すべて | これらのリソースは、これらのキーを使用して暗号化される必要があります | 保存データのセキュリティコントロールを実施します。 | |
| ネットワークをモニタリング | AWS | これらのVPCには 、インターネットゲートウェイを接続すべきではありません | ネットワークセキュリティ。内部ネットワークの露出を制限 |
| AWS | これらのサブネットは インバウンドインターネット接続を許可すべきではない | ネットワークセキュリティ。内部ネットワークの露出を制限 | |
| AWS | これらのセキュリティグループのルール変更をモニタリングする | ネットワークセキュリティ。機密度の高いセキュリティグループへの変更をモニタリングします。 | |
| AWS/Azure/GCP |
リソースは、これらの IPv4 アドレス範囲からこれらのポート へのインバウンドインターネット接続を許可すべきではない 注意: このポリシーは以下のリソースに適用されます:
|
ネットワークセキュリティ。外部ネットワークからのアクセスを制限します。 | |
| AWS | これらのセキュリティグループ は、 これらの IP アドレス範囲 から これらのポートへのインバウンドのインターネットアクセスを許可すべきではありません。 | ネットワークセキュリティ。内部または外部ネットワークからのアクセスを制限します。 | |
| AWS | これらのセキュリティグループは 、 これらの IP アドレス範囲 から これらのポートへのインバウンドのインターネットアクセスを許可する必要があります。 | ネットワークセキュリティ。内部または外部ネットワークからのアクセスを制限します。 |
