認可ポリシーでは、受信トラフィックの送信元と、その送信元に対して許可または制限されるオペレーションを指定するルールを定義します。また、認可ポリシーでは、ルールが適用される条件の概要を記述し、トラフィックを許可、拒否、または詳細に評価するアクションを指定します。
認可ポリシーを使用すると、アプリケーション ロードバランサへの受信トラフィックのアクセス制御チェックを確立できます。これらのチェックに合格したリクエストは、バックエンド サービスに転送されます。これらのチェックに失敗したリクエストは、未認可のレスポンスで終了します。
このページでは、次のアプリケーション ロードバランサの認可ポリシーの概要について説明します。
- グローバル外部アプリケーション ロードバランサ
- リージョン外部アプリケーション ロードバランサ
- クロスリージョン内部アプリケーション ロードバランサ
- リージョン内部アプリケーション ロードバランサ
Cloud Service Mesh でデプロイされたサービスに認可ポリシーを使用する場合は、Envoy を使用してサービス セキュリティを設定するをご覧ください。
認可ポリシールールのコンポーネント
認可ポリシールールには次のコンポーネントがあります。
from
: ルールで許可されるクライアントの ID を指定します。ID は、相互 TLS 接続のクライアント証明書から取得できます。また、サービス アカウントやセキュアタグなど、クライアント VM に関連付けられたアンビエント ID にすることもできます。to
: ルールで許可されるオペレーション(アクセス可能な URL や許可される HTTP メソッドなど)を指定します。when
: 遵守する必要のある追加の制約を定義できます。制約を定義するには、Common Expression Language(CEL)式を使用します。action
: ルールのアクションを指定します。ALLOW
、DENY
、CUSTOM
のいずれかを指定できます。
認可ポリシーのアクション
リクエストを評価するときに、認可ポリシーは次のいずれかのアクションを実行します。
ALLOW
: リクエストが認可ポリシー内で定義されたルールと一致する場合、リクエストされたリソースへのアクセスを許可します。リクエストが認可ポリシー内で定義されたルールと一致しない場合、認可ポリシーはリクエストされたリソースへのアクセスをブロックします。リクエストがALLOW
ポリシーと一致しない場合、他のポリシーで許可されている場合でも、リクエストは拒否されます。DENY
: リクエストがDENY
ポリシー内で指定されたいずれかのルールと一致する場合、リソースへのアクセスをブロックします。リクエストが認可ポリシー内で定義されたルールと一致しない場合、認可ポリシーはリクエストされたリソースへのアクセス権を付与します。リクエストがDENY
ポリシーに一致する場合、他のポリシーで許可されている場合でも、リクエストは拒否されます。CUSTOM
: 複雑な認可の判断を行うために、外部認可システムとの統合を可能にします。CUSTOM
アクションは、認可の決定にサービス拡張機能または IAP を使用するポリシーで使用されます。
認可ポリシーの評価順序
1 つのリソースに複数の認可ポリシーが関連付けられている場合、リクエストが許可されるか拒否されるかを判断するために、次の順序で評価されます。
CUSTOM
アクションを含むポリシー:CUSTOM
ポリシーがリクエストを拒否すると、リクエストは直ちに拒否されます。DENY
ポリシーまたはALLOW
ポリシーは、構成されている場合でも評価されません。DENY
アクションを含むポリシー:DENY
ポリシーがリクエストに一致すると、リクエストは拒否されます。ALLOW
ポリシーは、構成されている場合でも評価されません。ALLOW
アクションを含むポリシー:ALLOW
ポリシーがない場合、またはALLOW
ポリシーがリクエストと一致する場合、リクエストは許可されます。ただし、リクエストに一致するALLOW
ポリシーがない場合、リクエストは拒否されます。
認可の決定を委任する
認可ポリシーを使用して表現できない複雑な認可の決定の場合は、Identity-Aware Proxy(IAP)などのカスタム認可プロバイダに認可決定を委任するか、サービス拡張機能を使用して独自の認可拡張機能を作成します。これは、IAP を介してオンプレミス認可エンジンまたはサードパーティ ID プロバイダを使用する場合に便利です。
IAP: アプリケーション ロードバランサの転送ルールの背後にあるアプリケーションへのアクセスを制御するように IAP を構成します。IAP は、ユーザー ID とコンテキストを確認してアクセスを判断します。また、Identity and Access Management(IAM)サービス アカウント トークンを認証し、IAM ポリシーを評価して、アプリケーション ロードバランサから公開されるバックエンド バケットへのアクセスを保護することもできます。詳細については、IAP と IAM に認可を委任するをご覧ください。
次のシナリオでは、認証を IAP と IAM に委任できます。
- IAM を使用して権限を管理する。
- コンテキストアウェア アクセスを実装する。
- インタラクティブな認証が必要なウェブ アプリケーションには、ブラウザベースの認証を使用する。
Service Extensions: Google Cloud VM インスタンスまたはオンプレミスで実行されているカスタム認可エンジンに認可決定を委任します。これにより、組み込みポリシーでカバーされていない複雑な認可ポリシーを柔軟に設定できます。詳細については、認可拡張機能を構成するをご覧ください。
料金
プレビュー期間中は、認証ポリシーの料金は発生しません。だだし、Google Cloud ロードバランサを使用すると、ネットワーク料金が発生する場合があります。料金については、こちらをご覧ください。