拒否ポリシーの Policy Simulator では、変更を commit する前に、IAM 拒否ポリシーへの変更がプリンシパルのアクセス権にどのように影響するかを確認できます。Policy Simulator を使用して、変更を行うことによりプリンシパルが必要なアクセス権を失わないようにできます。
この機能は、拒否ポリシーのみを評価します。他のポリシータイプをシミュレートする方法については、以下をご覧ください。
拒否ポリシーの Policy Simulator の仕組み
拒否ポリシーの Policy Simulator を使用すると、拒否ポリシーの変更によってプリンシパルが使用しているアクセスがブロックされるかどうかを判断できます。
拒否ポリシーのシミュレーションを実行すると、Policy Simulator は次の処理を行います。
再生期間中に生成された組織のアクセスログを取得します。リプレイ期間は 90 日間です。
組織が 90 日以上存在していない場合、Policy Simulator は組織が作成されてからのすべてのアクセスログを取得します。
シミュレーションに関連するアクセスログを特定します。関連するアクセスログは、プリンシパルが権限を使用してリソースにアクセスしようとした最新の試行を表すアクセスログです。
関連するアクセスログごとに、現在の拒否ポリシーと提案された変更によってアクセス試行が許可されるかどうかを判断します。このプロセスは、アクセス試行の再生と呼ばれます。
各アクセスログについて、再生のアクセス状態とアクセスログのアクセス状態を比較します。次に、Policy Simulator は、アクセスログではブロックされなかったが、リプレイではブロックされた過去のアクセス試行をレポートします。これらの違いはアクセス変更と呼ばれ、シミュレートされた拒否ポリシーが試行時に適用されていた場合にブロックされていたアクセス試行を示します。
リプレイ期間
リプレイ期間は、シミュレーションの実行時に Policy Simulator がアクセスログを取得する期間です。再生期間の初日より前、または再生期間の最終日より後に発生したアクセスログは、シミュレーションに含まれません。リプレイ期間は 90 日間です。組織リソースが存在している期間がこれより短い場合、Policy Simulator は、組織が作成されてからのすべてのアクセス試行を取得します。再生ウィンドウにも結果整合性があります。つまり、シミュレーションを実行すると、一部のデータが他のデータよりも新しい可能性があります。ただし、最終的にはすべてのデータの鮮度が同じになります。結果整合性では、通常、再生期間は数日で終了しますが、最大 15 日早く終了する可能性があります。シミュレーション結果には、正確な再生ウィンドウが表示されます。この期間以降のアクセスログは含まれません。
Policy Simulator の結果
Policy Simulator は、拒否ポリシーに対して提案された変更の影響をアクセス変更のリストとしてレポートします。拒否ポリシーの場合、Policy Simulator がレポートするアクセス権の変更は、アクセス権の取り消しのみです。
次の条件が満たされている場合、Policy Simulator はアクセス権が取り消されたことをレポートします。
- プリンシパルがリソースへのアクセスを試みた直近の試行が成功しました
- 提案された変更または別の拒否ポリシーによって、プリンシパルのリソースへのアクセスがブロックされる
Policy Simulator は、アクセス権の変更ごとに次の情報もレポートします。
- アクセス試行に関係するプリンシパル、リソース、権限。
- プリンシパルが権限を使用してリソースにアクセスしようとしたリプレイ期間の日数。この合計には、最新のアクセス試行と同じ結果のアクセス試行のみが含まれます。
- 最近のアクセス試行の日付。
エラー
次のエラーが発生すると、シミュレーションが失敗する可能性があります。
- 同時実行シミュレーションの最大数を超えました: ユーザーがすでに 50 個の進行中のシミュレーションを実行しています。これは、ユーザーが実行できる進行中のシミュレーションの最大数です。この問題を解決するには、進行中のシミュレーションのいずれかが完了するまで待ってから、もう一度シミュレーションを実行します。
- タイムアウト: シミュレーションの実行に時間がかかりすぎ、タイムアウトしました。24 時間を超えるシミュレーションは自動的にタイムアウトします。この問題を解決するには、もう一度シミュレーションを実行するか、シミュレーションのサイズを小さくします。
- 無効なシミュレーションの構築: 提案された拒否ポリシーが無効であるか、サポートされていない拒否ルールが含まれています。無効なポリシーの例としては、無効な条件式を含むポリシーがあります。サポートされていない拒否ルールの例としては、Workforce Identity プリンシパル ID を使用するルールがあります。解決するには、ポリシーを修正してもう一度お試しください。
- Permission denied: シミュレーションを実行する権限がありません。この問題を解決するには、必要なロールが付与されていることを確認してから、もう一度お試しください。
サポートされているプリンシパル タイプ
拒否ポリシーの Policy Simulator は、次のタイプのプリンシパルのアクセスログのみを確認します。
- Google Workspace アカウント
- サービス アカウント
- プロジェクト、フォルダ、組織のサービス アカウント プリンシパル セット
- サービス エージェント
- プロジェクト、フォルダ、組織のサービス エージェント プリンシパル セット
拒否ポリシーをシミュレートする場合、Policy Simulator は、Workload Identity プールの連携 ID に基づくプリンシパル タイプなど、他のプリンシパル タイプのアクセスログを確認しません。そのため、Policy Simulator は、ポリシーまたはバインディングに対する提案された変更が、これらのプリンシパルのアクセスに影響するかどうかをレポートしません。
認証情報アクセス境界のシミュレーション
認証情報アクセス境界を使用すると、有効期間が短い認証情報が Cloud Storage リソースへのアクセスに使用できる IAM 権限の範囲を限定できます。権限をダウン スコープするには、ユーザーまたはサービス アカウント(トークン ブローカー)が、ダウン スコープされたアクセス トークン内のリソースのセットで使用可能な権限を定義し、そのアクセス トークンを別のユーザーまたはサービス アカウント(トークン コンシューマー)に提供します。
トークン ブローカーには、範囲が限定されたアクセス トークンでトークン コンシューマーに付与された権限を含むロールが必要です。トークンブローカーでそのロールを拒否すると、トークン コンシューマーからのアクセスも削除されます。ただし、Policy Simulator は、トークン ブローカーの権限の変更がトークン コンシューマーのアクセスにどのように影響するかを評価しません。
たとえば、認証情報アクセス境界で作成されたスコープダウン アクセス トークンを使用して、リソースに対するストレージのレガシー バケット読み取り(roles/storage.legacyBucketReader)ロールが付与されているユーザーについて考えてみます。
そのユーザーの Storage Legacy Bucket Reader ロールの拒否をシミュレートすると、Policy Simulator はアクセス権の喪失を報告できません。
トークン ブローカーで Storage Legacy バケット閲覧者ロールの拒否をシミュレートすると、Policy Simulator はユーザーのアクセス権の喪失を報告できません。同様に、トークン ブローカーのアクセス権が 90 日以内に使用されなかった場合、そのアクセス権はシミュレーションに含まれません。
詳細については、Cloud Storage の認証情報アクセス境界をご覧ください。
次のステップ
- 拒否ポリシーの変更をシミュレートする方法を確認する。
- その他の ポリシー インテリジェンス ツールを調べる。