Azure Key Vault と Azure Policy を統合する
Azure Policy は、Azure 環境を大規模に監査および管理する機能をユーザーに提供するガバナンス ツールです。これにより、ユーザーは Azure リソースにガードレールを配置して、割り当てられたポリシー ルールに準拠していることを確認できます。 これによりユーザーは、利用中の Azure 環境の監査、リアルタイムの適用、修復を実行できます。 ポリシーによって実行された監査の結果は、コンプライアンス ダッシュボードで公開され、ユーザーは、どのリソースとコンポーネントが準拠しているか、準拠していないかを詳細に確認できます。 詳細については、「Azure Policy サービスの概要」を参照してください。
使用シナリオの例を示します。
- 会社のキー コンテナーにおける最小限のキー サイズと証明書の最長有効期間に関する要件を実装することで会社のセキュリティ体制を改善したいのに、どのチームが準拠し、どのチームがとそうでないかがわからない。
- 現在、組織全体にわたる監査を実行するためのソリューションがないか、組織内の個々のチームにコンプライアンスに関する報告を行うよう依頼することで環境の監査を手動で実施している。 このタスクを自動化し、リアルタイムで監査を実行して、監査の精度を保証する方法を探している。
- 会社のセキュリティ ポリシーを適用し、個人が自己署名証明書を作成するのを止める必要があるのに、作成を自動的にブロックする方法がない。
- テスト チームのいくつかの要件を緩和する必要があるのに、運用環境に対する厳しい管理は維持する必要がある。 リソースの適用を分離するため、簡単で自動化された方法を必要としている。
- 稼働中のサイトで問題が発生した場合に、新しいポリシーの適用を確実にロールバックできるようにする必要がある。 ポリシーの適用をオフにするワンクリック ソリューションを必要としている。
- 環境監査のためにサード パーティのソリューションに依存しているので、社内の Microsoft サービスを利用したい。
ポリシーの効果の種類とガイダンス
ポリシーを適用するときに、結果の評価に対する効果を決定できます。 各ポリシー定義では、複数の効果の中からいずれかを選択できます。 そのため、ポリシーの強制は、評価する操作の種類によって異なる動作をする可能性があります。 一般に、Key Vault と統合するポリシーの効果は次のとおりです。
監査: ポリシーの効果が
Audit
に設定されているときには、ポリシーによって環境に対する重大な変更が発生することはありません。 指定したスコープ内の、ポリシー定義に準拠していない証明書などのコンポーネントについては、ポリシー コンプライアンス ダッシュボードで非準拠というマークが付いてアラートが示されるだけです。 ポリシーの効果が選択されていない場合は、監査が既定値です。拒否: ポリシーの効果が
Deny
に設定されている場合、ポリシーは新しいコンポーネント (証明書など) の作成をブロックし、ポリシー定義に準拠していない既存のコンポーネントの新しいバージョンをブロックします。 キー コンテナー内の既存の非準拠リソースは影響を受けません。 "監査" 機能は引き続き動作します。無効: ポリシーの効果が
Disabled
に設定されている場合、ポリシーは引き続き評価されますが、適用は有効になりません。そのため、Disabled
の効果を持つ条件に準拠しています。 これは、すべての条件ではなく、特定の条件に対してポリシーを無効化するのに役立ちます。変更: ポリシーの効果が
Modify
に設定されている場合は、ネットワークへのDeny
タグの追加など、リソース タグの追加を実行できます。 これは、Azure Key Vault マネージド HSM のパブリック ネットワークへのアクセスを無効化するのに便利です。Modify
の効果を利用するには、roleDefinitionIds
パラメータでポリシー定義にマネージド ID を構成する必要があります。DeployIfNotExists: ポリシーの効果を
DeployIfNotExists
に設定すると、条件を満たしたときにデプロイ テンプレートが実行されます。 Key Vault の診断設定を Log Analytics ワークスペースに構成するために使用できます。DeployIfNotExists
の効果を利用するには、roleDefinitionIds
パラメータでポリシー定義にマネージド ID を構成する必要があります。AuditIfNotExists: ポリシーの効果が
AuditIfNotExists
に設定されている場合、ポリシー条件の詳細で指定されたプロパティがないリソースを特定できます。 これは、リソース ログが有効になっていないキー コンテナーを特定するのに便利です。DeployIfNotExists
の効果を利用するには、roleDefinitionIds
パラメータでポリシー定義にマネージド ID を構成する必要があります。
使用できる組み込みポリシー定義
組み込みと呼ばれる事前に定義されたポリシーは、キー コンテナーのガバナンスを容易にします。そのため、ベスト セキュリティ プラクティスに関連付けられた一般に使われるルールを適用するために JSON 形式でカスタム ポリシーを記述する必要はありません。 組み込みはあらかじめ設定されていますが、特定のポリシーではパラメーターを定義する必要があります。 たとえば、ポリシーの効果を定義することで、拒否の操作を適用する前にキー コンテナーとそのオブジェクトを監査し、停止を防ぐことができます。 Azure Key Vault の現在の組み込みは、大きく 4 つのグループ、Key コンテナー、証明書、キー、シークレット管理に分類されます。 各カテゴリ内では、特定のセキュリティ目標を推進するためのポリシーがグループ化されています。
キー コンテナー
アクセス制御
Azure Policy サービスを使用すると、コンテナー間での RBAC アクセス許可モデルへの移行を管理できます。 「コンテナー アクセス ポリシーから Azure ロールベースのアクセス制御のアクセス許可モデルへの移行」を参照してください
ポリシー | 効果 |
---|---|
Azure Key Vault では RBAC アクセス許可モデルを使用する必要がある | 監査 "(既定)"、拒否、無効 |
ネットワーク アクセス
パブリック ネットワーク アクセスの制限、Azure Private Link 接続の有効化、プライベート エンドポイントの DNS 解決をオーバーライドするプライベート DNS ゾーンの作成、ファイアウォール保護の有効化によりデータ漏えいのリスクを軽減し、キー コンテナーが既定でパブリック IP にアクセスできないようにします。
ポリシー | 効果 |
---|---|
Azure Key Vault should disable public network access (Azure Key Vault で公衆ネットワーク アクセスを無効にする必要がある) | 監査 "(既定)"、拒否、無効 |
[プレビュー]: Azure Key Vault マネージド HSM で公衆ネットワーク アクセスを無効にする必要がある | 監査 "(既定)"、拒否、無効 |
[プレビュー]: 公衆ネットワーク アクセスを無効にするように Key Vault マネージド HSM を構成する | 変更 "(既定)"、無効 |
[プレビュー]: Azure Key Vault でプライベート リンクを使用する必要がある | 監査 "(既定)"、拒否、無効 |
[プレビュー]: Azure Key Vault マネージド HSM はプライベート リンクを使用する必要がある | 監査 "(既定)"、無効 |
[プレビュー]: プライベート エンドポイントを使って Azure Key Vault を構成する | DeployIfNotExists "(既定)"、無効 |
[プレビュー]: プライベート エンドポイントを使用して Azure Key Vault Managed HSM を構成する | DeployIfNotExists "(既定)"、無効 |
[プレビュー]: プライベート DNS ゾーンを使うように Azure Key Vault を構成する | DeployIfNotExists "(既定)"、無効 |
Key Vault でファイアウォールを有効にする必要がある | 監査 "(既定)"、拒否、無効 |
ファイアウォールを有効にするように Key Vault を構成する | 変更 "(既定)"、無効 |
削除保護
論理的な削除と消去保護を有効にすることで、キー コンテナーとそのオブジェクトの完全なデータ損失を防ぎます。 論理的な削除では、誤って削除したキー コンテナーを構成可能な保存期間内で復元できますが、消去保護では、論理的に削除されたキー コンテナーに必須の保存期間を適用して、インサイダー攻撃から保護します。 消去保護は、論理的な削除が有効な場合にのみ有効にすることができます。 論理削除の保持期間中は、組織内または Microsoft 内の誰も、キー コンテナーを消去することはできません。
ポリシー | 効果 |
---|---|
Key Vault で論理的な削除が有効になっている必要がある | 監査 "(既定)"、拒否、無効 |
Key Vault で消去保護が有効になっている必要がある | 監査 "(既定)"、拒否、無効 |
Azure Key Vault Managed HSM で消去保護が有効になっている必要がある | 監査 "(既定)"、拒否、無効 |
診断
リソース ログを有効にして、セキュリティ インシデントが発生したときやネットワークがセキュリティ侵害されたときに調査のために使うアクティビティ証跡を再作成するようにします。
ポリシー | 効果 |
---|---|
Key Vault の診断設定をイベント ハブにデプロイする | DeployIfNotExists "(既定)" |
デプロイ - Azure Key Vault マネージド HSM で有効にする診断設定をイベント ハブに構成する | DeployIfNotExists "(既定)"、無効 |
デプロイ - Log Analytics ワークスペースに Key Vault の診断設定を構成する | DeployIfNotExists "(既定)"、無効 |
Key Vault のリソース ログを有効にする必要がある | AuditIfNotExists "(既定)"、無効 |
Key Vault マネージド HSM のリソース ログを有効にする必要がある | AuditIfNotExists "(既定)"、無効 |
証明書
証明書のライフサイクル
有効期間の短い証明書の使用を促進し、継続的な損害の期間を最小限に抑え、攻撃者にとっての証明書の価値を下げることで、検出されない攻撃を軽減します。 有効期間の短い証明書を実装する場合、有効期限が切れる前に適切にローテーションできるように、有効期限を定期的に監視して停止を回避することをお勧めします。 有効期限までの期間が一定日数内である証明書、または使用できる有効期間の一定割合に達した証明書に対して指定される、有効期間のアクションを管理することもできます。
ポリシー | 効果 |
---|---|
[プレビュー]: 証明書には最長有効期間を指定する必要がある | 効果: 監査 ("既定")、拒否、無効 |
[プレビュー]: 証明書の有効期限が指定された日数以内に切れてはならない | 効果: 監査 ("既定")、拒否、無効 |
証明書には、指定された有効期間アクション トリガーが必要である | 効果: 監査 ("既定")、拒否、無効 |
注意
証明書の有効期限ポリシーは、180 日、90 日、60 日、30 日間のしきい値など、有効期限の異なるしきい値を指定して複数回適用することをお勧めします。
証明機関
特定の証明機関の選択を監査または適用して、Azure Key Vault の統合証明機関 (Digicert または GlobalSign)、または希望する統合されていない証明機関のいずれかに依存して証明書を発行します。 また、自己署名証明書の作成を監査または拒否できます。
ポリシー | 効果 |
---|---|
証明書は、指定の統合された証明機関によって発行される必要がある | 監査 ("既定")、拒否、無効 |
証明書は、指定の統合されていない証明機関によって発行される必要がある | 監査 ("既定")、拒否、無効 |
証明書の属性
キー コンテナーの証明書の種類を、RSA、ECC、または HSM でサポートされるものに制限します。 楕円曲線暗号または ECC 証明書を使う場合、P-256、P-256K、P-384、P-521 などの曲線名をカスタマイズして選択できます。 RSA 証明書を使う場合、証明書の最小キー サイズを 2048 ビット、3072 ビット、または 4096 ビットから選択できます。
ポリシー | 効果 |
---|---|
証明書は、許可されたキーの種類を使用する必要がある | 監査 ("既定")、拒否、無効 |
楕円曲線暗号を使用する証明書には、許可されている曲線名が必要である | 監査 ("既定")、拒否、無効 |
RSA 暗号を使用する証明書に、キーの最小サイズを指定する必要がある | 監査 ("既定")、拒否、無効 |
キー
HSM でサポートされるキー
HSM は、キーを格納するハードウェア セキュリティ モジュールです。 HSM によって、暗号化キーの物理的な保護レイヤーが提供されます。 暗号化キーは、ソフトウェア キーよりも高いレベルのセキュリティを提供する物理 HSM から離れることはできません。 一部の組織には、HSM キーの使用を必須とするコンプライアンス要件があります。 このポリシーを使用して、HSM ベースでない Key Vault に格納されているキーを監査します。 また、このポリシーを使用して、HSM ベースでない新しいキーの作成をブロックすることもできます。 このポリシーは、RSA や ECC など、すべてのキーの種類に適用されます。
ポリシー | 効果 |
---|---|
ハードウェア セキュリティ モジュール (HSM) によってキーをサポートする必要がある | 監査 ("既定")、拒否、無効 |
キーのライフサイクル
ライフサイクル管理の組み込みにより、有効期間のないキーにフラグを設定またはブロックする、キーのローテーションが遅れた場合にアラートを出す、有効期間が近いキーを新たに作成しないようにする、キーの有効期間とアクティブ状態を制限してキーのローテーションを促進する、および指定日数を超えてキーがアクティブになるのを防ぐことができます。
ポリシー | 効果 |
---|---|
キーには、作成後指定された日数以内にローテーションがスケジュールされることを保証するローテーション ポリシーが含まれている必要があります | 監査 ("既定")、無効 |
Key Vault キーには有効期限が必要である | 監査 ("既定")、拒否、無効 |
[プレビュー]: マネージド HSM キーには有効期限を設定する必要がある | 監査 ("既定")、拒否、無効 |
キーの有効期限には、指定された日数より先の日付を指定する必要がある | 監査 ("既定")、拒否、無効 |
[プレビュー]: Azure Key Vault マネージド HSM キーは、有効期限まで指定された日数よりも長い必要がある | 監査 ("既定")、拒否、無効 |
キーには最長有効期間を指定する必要がある | 監査 ("既定")、拒否、無効 |
指定された日数より長くキーをアクティブにすることはできない | 監査 ("既定")、拒否、無効 |
重要
キーをアクティブ化した日が設定されている場合、上記のポリシーによって、キーをアクティブ化した日から現在の日付までの経過日数が計算されます。 その日数が設定したしきい値を超えている場合、キーはポリシーに準拠していないとマークされます。 キーをアクティブ化した日が設定されていない場合は、ポリシーによって、キーの作成日から現在の日付までの経過日数が計算されます。 その日数が設定したしきい値を超えている場合、キーはポリシーに準拠していないとマークされます。
キー属性
Key Vault のキーの種類を、RSA、ECC、または HSM でサポートされるものに制限します。 楕円曲線暗号または ECC キーを使う場合、P-256、P-256K、P-384、P-521 などの曲線名をカスタマイズして選択できます。 RSA キーを使う場合、現在および新しいキーの最小サイズを 2048 ビット、3072 ビット、4096 ビットのいずれかにすることを要求できます。 キー サイズが小さい RSA キーを使うことは安全な設計手法ではないことに注意してください。そのため、最小サイズ要件を満たさない新しいキーの作成をブロックすることをお勧めします。
ポリシー | 効果 |
---|---|
キーは、特定の暗号化の種類 (RSA または EC) である必要がある | 監査 ("既定")、拒否、無効 |
楕円曲線暗号を使用するキーに曲線名を指定する必要がある | 監査 ("既定")、拒否、無効 |
[プレビュー]: 楕円曲線暗号を使用する Azure Key Vault マネージド HSM キーに曲線名を指定する必要がある | 監査 ("既定")、拒否、無効 |
RSA 暗号を使用するキーにキーの最小サイズを指定する必要がある | 監査 ("既定")、拒否、無効 |
[プレビュー]: RSA 暗号を使用する Azure Key Vault マネージド HSM キーにキーの最小サイズを指定する必要がある | 監査 ("既定")、拒否、無効 |
シークレット
シークレットのライフサイクル
ライフサイクル管理の組み込みにより、有効期間のないシークレットにフラグを設定またはブロックする、シークレットのローテーションが遅れた場合にアラートを出す、有効期間が近いキーを新たに作成しないようにする、キーの有効期間とアクティブ状態を制限してキーのローテーションを促進する、および指定日数を超えてキーがアクティブになるのを防ぐことができます。
ポリシー | 効果 |
---|---|
シークレットには有効期限が必要である | 監査 ("既定")、拒否、無効 |
シークレットの有効期限は、指定された日数より先の日付を指定する必要がある | 監査 ("既定")、拒否、無効 |
シークレットには最長有効期間を指定する必要がある | 監査 ("既定")、拒否、無効 |
指定された日数より長くシークレットをアクティブにすることはできない | 監査 ("既定")、拒否、無効 |
重要
シークレットをアクティブ化した日が設定されている場合、上記のポリシーによって、シークレットをアクティブ化した日から現在の日付までの経過日数が計算されます。 その日数が設定したしきい値を超えている場合、シークレットはポリシーに準拠していないとマークされます。 シークレットをアクティブ化した日が設定されていない場合は、このポリシーによって、シークレットの作成日から現在の日付までの経過日数が計算されます。 その日数が設定したしきい値を超えている場合、シークレットはポリシーに準拠していないとマークされます。
シークレットの属性
プレーンテキストまたはエンコードされたファイルを Azure キー コンテナー シークレットとして格納できます。 ただし、パスワード、接続文字列、またはキーとして格納されている証明書に対して、異なるローテーション ポリシーと制限を設定することが組織で必要になる場合があります。 コンテンツの種類のタグは、ユーザーがシークレットの値を読み取らずに、シークレット オブジェクトに何が格納されているかを確認するのに役立ちます。 コンテンツ タイプのタグが設定されていないシークレットの監査や、コンテンツ タイプのタグが設定されていない場合に新しいシークレットが作成されないようにできます。
ポリシー | 効果 |
---|---|
シークレットにはコンテンツの種類を設定する必要がある | 監査 ("既定")、拒否、無効 |
シナリオ例
複数のチームによって使用される、100 の証明書を含むキー コンテナーを管理し、キー コンテナー内に 2 年より長く有効な証明書がないようにしたいと考えています。
- 証明書には最長有効期間を指定する必要があるポリシーを割り当てて、証明書の最長有効期間は 24 か月であることを指定し、ポリシーの効果を "監査" に設定します。
- Azure portal でコンプライアンス レポートを表示し、20 の証明書が非準拠で有効期間が 2 年を超えていて、残りの証明書は準拠していることを検出します。
- これらの証明書の所有者に連絡し、証明書が 2 年より長く有効であってはいけないという新しいセキュリティ要件を伝えます。 一部のチームが対応し、15 の証明書は最長有効期間を 2 年以下として更新されました。 他のチームは対応しておらず、キー コンテナーには非準拠の証明書がまだ 5 つあります。
- 割り当てたポリシーの効果を "拒否" に変更します。 非準拠の 5 つの証明書は取り消されず、機能し続けています。 ただし、それらは 2 年を超える有効期間では更新できません。
Azure portal からのキー コンテナー ポリシーの有効化と管理
ポリシー定義を選択する
Azure ポータルにログインします。
検索バーで「ポリシー」を検索し、[ポリシー] を選択します。
[ポリシー] ウィンドウで、[定義] を選択します。
カテゴリ フィルターで [すべて選択] を選択解除し、[Key Vault] を選択します。
これで、Azure Key Vault のパブリック プレビューで使用できるすべてのポリシーを参照できるはずです。 上記のポリシーのガイダンスに関するセクションを読んで理解していることを確認し、スコープに割り当てるポリシーを選択します。
スコープにポリシーを割り当てる
適用するポリシーを選択します。この例では、[Manage Certificate Validity Period] (証明書の有効期間を管理する) ポリシーが表示されています。 左上隅の [割り当て] ボタンをクリックします。
適用するポリシーのサブスクリプションを選択します。 サブスクリプション内で、スコープを 1 つのリソース グループのみに制限することを選択できます。 ポリシーをサブスクリプション全体に適用し、一部のリソース グループを除外する場合は、除外リストを構成することもできます。 ポリシーの効果 (監査または拒否) を生じさせる場合はポリシー適用セレクターを [有効] に設定し、効果 (監査または拒否) をオフにするには [無効] に設定します。
必要な最長有効期間を月単位で指定するため、画面上部の [パラメーター] タブをクリックします。 パラメーターを入力する必要がある場合は、[入力またはレビューが必要なパラメーターのみを表示する] オプションをオフにできます。 上のセクションのガイダンスに従い、ポリシーの効果について [監査] または [拒否] を選択します。 次に、[確認および作成] ボタンを選択します。
コンプライアンスの結果を表示する
ポリシーのブレードに戻り、[コンプライアンス] タブを選択します。コンプライアンスの結果を表示するポリシー割り当てをクリックします。
このページからは、準拠または非準拠のコンテナー別に、結果をフィルター処理することができます。 ここでは、ポリシー割り当てのスコープ内にある、非準拠のキー コンテナーの一覧を確認できます。 コンテナー内のいずれかのコンポーネント (証明書) が非準拠である場合、そのコンテナーは非準拠と見なされます。 個々のコンテナーを選択すると、個々の非準拠コンポーネント (証明書) を表示できます。
非準拠のコンテナー内にあるコンポーネントの名前を表示します
ユーザーに対して、キー コンテナー内でリソースを作成する機能が拒否されているかどうかを確認する必要がある場合は、[コンポーネント イベント (プレビュー)] タブをクリックすると、要求の要求元やタイムスタンプに基づいて、拒否された証明書操作の概要を表示できます。
機能の制限
ポリシーに "拒否" 効果を割り当てると、非準拠リソースの作成の拒否が開始されるのに最大 30 分 (平均的な場合) かかり、最長の場合は 1 時間かかることがあります。 この遅延は、次のシナリオを示しています。
- ポリシーが割り当てられる。
- 既存のポリシー割り当てが変更される。
- 既存のポリシーを含むスコープに新しい KeyVault (リソース) が作成される。
コンテナー内の既存コンポーネントのポリシー評価では、ポータル UI でコンプライアンスの結果を表示できるようになるまで最大 1 時間 (平均的な場合) かかり、最長の場合は 2 時間かかることがあります。
コンプライアンスの結果が "未開始" と表示される場合は、以下の理由が原因の可能性があります。
- ポリシーの評価がまだ完了していません。 最初の評価の待機時間は、最悪のシナリオでは最大 2 時間かかる場合があります。
- ポリシー割り当てのスコープ内にキー コンテナーがありません。
- ポリシー割り当てのスコープ内に、証明書が含まれるキー コンテナーがありません。
Note
Azure Policy のリソース プロバイダーのモード (Azure Key Vault のものなど) を使用すると、[コンポーネント コンプライアンス] ページにコンプライアンスに関する情報が表示されます。
次の手順
- Key Vault の Azure Policy のログ記録とよく寄せられる質問
- Azure Policy サービスの詳細を確認する
- Key Vault のサンプルを参照する:Key Vault の組み込みのポリシー定義
- Key Vault での Microsoft クラウド セキュリティ ベンチマークについて学習する