全体的なセキュリティを向上させるため、IAP ではデフォルトで、一致する Server Name Indication(SNI)がないリクエストへのアクセスを拒否します。IAP はロードバランサ証明書の SNI もチェックします。これにより、IAP は悪意のあるドメインへの URL リダイレクトを制限できるようになります。IAP のドメイン許可機能により、IAP で保護されたリソースのセキュリティが強化されます。リソース オーナーまたは IAP 管理者は、許可されるドメイン機能を構成することで、IAP で保護されたリソースへのアクセスを特定のドメインに制限できます。
次のシナリオでは、IAP で許可されるドメインを構成することもできます。
- ブラウザまたは中間プロキシが接続プーリングを強制しています: このシナリオでは、HTTP レスポンス 429 とエラーコード
51が返されます。この問題を解決するには、IAP 管理者が許可されたドメインのリストを更新して、ホスト名を追加します。 - 指定されたホスト名が、サーバー上の SSL 証明書と一致しません。このシナリオではエラーコード
52が返されます。この問題を解決するには、IAP 管理者が許可されたドメインのリストを更新して、ホスト名を追加します。
許可されるドメインを構成する
許可されたドメインを設定するは、gcloud または API を使用します。許可されるドメインを構成するには、次のフィールドを使用します。
enable: ブール値。許可されるドメインの機能を有効または無効にします。Domains: 文字列。許可されるドメインのリスト。ドメインには*.example.com.などのワイルドカード プレフィックスを含めることができます。ドメイン名には、パブリック サフィックスやトップレベル ドメインに直接ワイルドカードを含めることはできません。例:*.com、*.co.in。
詳しくは、IapSettings をご覧ください。
IAP で許可されるドメインを構成するには、次の手順を行います。
コンソール
- IAP ページに移動します。
Identity-Aware Proxy に移動します。 - プロジェクトを選択し、許可されるドメインの機能を有効にするリソースを選択します。
- リソースの [設定] を開きます。[許可されるドメイン] で [許可されるドメインを有効にする] を選択します。
- 許可されるドメインのリストを指定して、[保存] をクリックします。
gcloud
許可されるドメインを指定するコマンドの例を以下に示します。
詳細については、gcloud iap settings set をご覧ください。
次のコマンドを実行します。
gcloud iap settings set SETTING_FILE --folder=FOLDER --organization=ORGANIZATION --project=PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION
ここで、SETTING_FILE は次のようになります。
accessSettings:
allowed_domains_settings:
enable: true
domains: ["*.example.com", "*.example.net"]
以下を置き換えます。
- FOLDER: フォルダ ID。
- ORGANIZATION: 組織 ID。
- PROJECT: プロジェクト ID。
- RESOURCE_TYPE: IAP リソースタイプ。
app-engine、iap_web、compute、organization、またはfolderにする必要があります。 - SERVICE: サービス名。
resource-typeがcomputeまたはapp-engineの場合、これは省略可能です。 - VERSION: バージョン名。これは
computeには適用されず、resource-typeがapp-engineの場合は省略可能です。
API
許可されるドメインを構成するには、次の手順を行います。API を使用して許可されるドメインを構成する方法については、IapSettings をご覧ください。
- 次のコマンドを実行して
iap_settings.jsonファイルを準備します。必要に応じて値を更新します。
{
"access_settings":{
"allowed_domains_settings":{
"enable": true
"domains": [
"*.example.com",
"*.exampe.net"
]
}
}
}
gcloud iap settings getコマンドを実行してリソース名を取得します。出力から名前フィールドをコピーします。次のステップで名前が必要になります。
gcloud iap settings get --organization=ORGANIZATION --folder=FOLDER --project=PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION
- 次のコマンドの
RESOURCE_NAMEは、前の手順の名前に置き換えます。IapSettingsが更新されます。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d @iap_settings.json \ "https://iap.googleapis.com/v1/RESOURCE_NAME:iapSettings?updateMask=iapSettings.accessSettings.allowedDomainsSettings.enable,iapSettings.accessSettings.allowedDomainsSettings.domains"
トラブルシューティング
許可されるドメイン アクセスの問題
エラーコード 53 が表示された場合は、IAP 管理者に、ホスト名を許可されたドメインのリストに追加するように依頼してください。