Azure マネージド HSM と Azure Policy を統合する

Azure Policy は、ユーザーが大規模な Azure 環境を監査および管理する機能を提供するガバナンス ツールです。 Azure Policy は、割り当てられたポリシー規則に Azure リソースが確実に準拠するように、Azure リソースにガードレールを配置する機能を提供します。 これによりユーザーは、利用中の Azure 環境の監査、リアルタイムの適用、修復を実行できます。 ポリシーによって実行された監査の結果は、どのリソースとコンポーネントが準拠しているか、していないかのドリルダウンを表示できるコンプライアンス ダッシュボードでユーザーが使用できるようになります。 詳細については、「Azure Policy サービスの概要」を参照してください。

使用シナリオの例を示します。

  • 現在、組織全体にわたる監査を実行するためのソリューションがないか、組織内の個々のチームにコンプライアンスに関する報告を行うよう依頼することで環境の監査を手動で実施している。 このタスクを自動化し、リアルタイムで監査を実行して、監査の精度を保証する方法を探している。
  • 会社のセキュリティ ポリシーを適用し、個人が特定の暗号化キーを作成するのをやめさせたいが、作成を阻止する自動化された方法がない。
  • テスト チームのいくつかの要件を緩和する必要があるのに、運用環境に対する厳しい管理は維持する必要がある。 リソースの適用を分離するため、簡単で自動化された方法を必要としている。
  • 稼働中のサイトの問題が発生した場合に、新しいポリシーの適用を確実にロールバックできるようにする必要がある。 ポリシーの適用をオフにするワンクリック ソリューションを必要としている。
  • 環境監査のためにサード パーティのソリューションに依存しているので、社内の Microsoft サービスを利用したい。

ポリシーの効果の種類とガイダンス

監査:ポリシーの効果が監査に設定されているときには、ポリシーによって環境に対する重大な変更が発生することはありません。 指定したスコープ内の、ポリシー定義に準拠していないキーなどのコンポーネントは、ポリシーのコンプライアンス ダッシュボードで非準拠とマーク付けされて、それらのコンポーネントに対するアラートが出されるだけです。 ポリシーの効果が選択されていない場合は、監査が既定値です。

拒否: ポリシーの効果が拒否に設定されているときには、ポリシーによって、より脆弱なキーのような新しいコンポーネントの作成が阻止され、ポリシー定義に準拠しない既存キーの新しいバージョンがブロックされます。 マネージド HSM 内の既存の非準拠リソースは影響を受けません。 "監査" 機能は引き続き動作します。

楕円曲線暗号を使用するキーに曲線名を指定する必要がある

楕円曲線暗号または ECC キーを使用する場合は、下の一覧に示した曲線名の許可リストをカスタマイズできます。 既定のオプションでは、以下の曲線名がすべて許可されます。

  • P-256
  • P-256K
  • P-384
  • P-521

キーには有効期限が設定されている必要がある

このポリシーによって、マネージド HSM 内のすべてのキーを監査し、有効期限が設定されていないキーに、準拠していないというフラグを設定します。 また、このポリシーを使用すると、有効期限が設定されていないキーの作成をブロックすることもできます。

キーの有効期限には、指定された日数より先の日付を指定する必要がある

キーの有効期限が近すぎると、キーをローテーションする組織での遅延によって障害が発生するおそれがあります。 キーは、エラーに対処するための十分な時間を確保するために、有効期限よりも指定された日数だけ前にローテーションされる必要があります。 このポリシーは有効期限が近すぎるキーを監査するもので、このしきい値を日単位で設定できます。 また、このポリシーを使用して、有効期限に近すぎる新しいキーが作成されないようにすることもできます。

RSA 暗号を使用するキーにキーの最小サイズを指定する必要がある

キーのサイズが小さい RSA キーを使用することは、安全な設計手法ではありません。 最小限のキー サイズを使用する必要がある監査および認定の基準が適用される場合があります。 次のポリシーを使用すると、マネージド HSM の最小キー サイズ要件を設定できます。 この最小要件を満たしていないキーを監査することができます。 また、このポリシーを使用して、キーの最小サイズ要件を満たしていない新しいキーの作成をブロックすることもできます。

Azure CLI を使用したマネージド HSM ポリシーの有効化と管理

毎日スキャンするアクセス許可を付与する

プールのインベントリ キーのコンプライアンスを確認するには、顧客は "Managed HSM Crypto Auditor" ロールを "Azure Key Vault Managed HSM キー ガバナンス サービス" (アプリ ID: a1b76039-a76c-499f-a2dd-846b4cc32627) に割り当てて、キーのメタデータにアクセスできるようにする必要があります。 アクセス許可が付与されていない場合、インベントリ キーは Azure Policy コンプライアンス レポートで報告されず、新しいキー、更新されたキー、インポートされたキー、ローテーションされたキーのみがコンプライアンスについてチェックされます。 そのためには、マネージド HSM に対する "マネージド HSM 管理者" のロールを持つユーザーが、次の Azure CLI コマンドを実行する必要があります。

Windows の場合:

az ad sp show --id a1b76039-a76c-499f-a2dd-846b4cc32627 --query id

出力された id をコピーし、次のコマンドに貼り付けます。

az keyvault role assignment create --scope / --role "Managed HSM Crypto Auditor" --assignee-object-id "the id printed in previous command" --hsm-name <hsm name>

Linux または Linux の Windows サブシステムの場合:

spId=$(az ad sp show --id a1b76039-a76c-499f-a2dd-846b4cc32627 --query id|cut -d "\"" -f2)
echo $spId
az keyvault role assignment create --scope / --role "Managed HSM Crypto Auditor" --assignee-object-id $spId --hsm-name <hsm name>

ポリシー割り当てを作成する - 監査または拒否の規則を定義する

ポリシー割り当てでは、ポリシー定義のパラメーターに具体的な値が定義されています。 Azure portal で、"ポリシー" に移動し、"Key Vault" カテゴリでフィルターをかけて、以下の 4 つのプレビュー版キー ガバナンス ポリシー定義を見つけます。 1 つを選択し、上部にある [割り当て] ボタンを選択します。 各フィールドに入力します。 ポリシー割り当てが要求拒否の場合は、要求が拒否されると、ポリシー割り当ての名前がエラーに表示されるため、ポリシーについて明確な名前を使用してください。 [次へ] を選択し、[入力またはレビューが必要なパラメーターのみを表示する] をオフにして、ポリシー定義のパラメーターの値を入力します。 "修復" をスキップし、割り当てを作成します。 サービスは、"拒否" 割り当てを適用するために最大で 30 分かかります。

  • Azure Key Vault マネージド HSM キーには、有効期限を設定する必要があります
  • RSA 暗号を使用する Azure Key Vault マネージド HSM キーには、キーの最小サイズを指定する必要があります
  • Azure Key Vault マネージド HSM キーの残りの日数は、有効期限が切れるまでの指定された日数よりも長い必要があります
  • 楕円曲線暗号を使用する Azure Key Vault マネージド HSM キーには、曲線名を指定する必要があります

この操作は Azure CLI を使用して行うこともできます。 「Azure CLI を使用して準拠していないリソースを識別するポリシー割り当てを作成する」を参照してください。

セットアップをテストする

ルールに違反するキーを更新/作成しようとすると、"拒否" が有効なポリシー割り当てがある場合に、要求に対して 403 が返されます。 監査ポリシー割り当てのインベントリ キーのスキャン結果を確認します。 12 時間後に、ポリシーの [コンプライアンス] メニューを確認し、"Key Vault" カテゴリでフィルターをかけて、割り当てを見つけます。 それぞれで選択して、コンプライアンス結果レポートを調べます。

トラブルシューティング

1 日経過してもプールのコンプライアンス結果が出ない場合。 手順 2 でロール割り当てが正常に完了したかどうかを確認します。 手順 2 を実行しないと、キー ガバナンス サービスはキーのメタデータにアクセスできなくなります。 Azure CLI の az keyvault role assignment list コマンドで、ロールが割り当てられているかどうかを確認できます。

次の手順