ポリシー リメディエーターを使用した拒否されたアクセスの修正

このページでは、BeyondCorp Enterprise Policy Remediator を有効にして使用する方法について説明します。

ユーザーが Google Cloud リソースにアクセスしようとしたものの、そのリソースのアクセス ポリシーを遵守していない場合、アクセスは拒否され、一般的な 403 エラー メッセージが表示されます。ポリシー リメディエーターを使用すると、管理者に問い合わせる前に問題を修正するための手順をユーザーに提供できます。具体的な修復アクションはアクセス ポリシーによって異なりますが、画面ロックの有効化、オペレーティング システム(OS)バージョンの更新、会社で許可されているネットワークからアプリへのアクセスなどが該当します。

ポリシー リメディエーターを有効にする

  1. Google Cloud CLI で次のコマンドを実行して、組織管理者に組織レベルで roles/policyremediatormanager.policyRemediatorAdmin ロールを付与します。

    gcloud organizations add-iam-policy-binding 'organizations/ORGANIZATION_ID' \
        --member PRINCIPAL \
        --role roles/policyremediatormanager.policyRemediatorAdmin
    

    次のように置き換えます。

    • ORGANIZATION_ID: Google Cloud 組織 ID。
    • PRINCIPAL: プリンシパルまたはメンバーの識別子。通常、PRINCIPAL_TYPE:ID の形式で指定します。例: user:my-user@example.com
  2. 次のコマンドを実行して、ポリシー リメディエーター マネージャー API を有効にします。

    gcloud services enable policyremediatormanager.googleapis.com
    
  3. ポリシー リメディエーター マネージャーを呼び出して、組織内のプロジェクトに対してポリシー リメディエーターを有効にします。これにより、サービス エージェントが作成されます。

    curl -X POST \
    "https://policyremediatormanager.googleapis.com/v1alpha/organizations/ORGANIZATION_ID/locations/global/remediatorService:enable"  \
    --header 'Authorization: Bearer ACCESS_TOKEN' \
    --header 'X-Goog-User-Project:PROJECT_ID'
    

    次のように置き換えます。

    • ORGANIZATION_ID: Google Cloud 組織 ID。
    • ACCESS_TOKEN: アクセス トークンを生成するには、次のコマンドを使用します。
      gcloud auth print-access-token
      
    • PROJECT_ID: Google Cloud プロジェクト ID。

    サービス エージェントの詳細を含むレスポンスの例を次に示します。

    {
    "name": "organizations/ORGANIZATION_ID/locations/global/operations/",
    "metadata": {
      "@type":
    "type.googleapis.com/google.cloud.policyremediatormanager.remediatorservicemanager.v1alph
    a.OperationMetadata",
       "createTime": "",
       "target": "organizations/ORGANIZATION_ID/locations/global/remediatorService",
       "verb": "update",
       "requestedCancellation": false,
       "apiVersion": "v1alpha"
     },
     "done": false
    }
    

    ORGANIZATION_ID は Google Cloud 組織 ID です。

  4. Google Cloud CLI で次のコマンドを実行して、作成したサービス エージェントにアクセスします。

    curl -X GET \
    "https://policyremediatormanager.googleapis.com/v1alpha/organizations/ORGANIZATION_ID/locations/global/remediatorService" \
    --header 'Authorization: Bearer ACCESS_TOKEN' \
    --header 'X-Goog-User-Project:PROJECT_ID'
    

    次のように置き換えます。

    • ORGANIZATION_ID: Google Cloud 組織 ID。
    • ACCESS_TOKEN: アクセス トークンを生成するには、次のコマンドを使用します。
      gcloud auth print-access-token
      
    • PROJECT_ID: Google Cloud プロジェクト ID。

    次の形式でサービス エージェント メールが送信されます。

    {
    "name": "organizations/ORGANIZATION_ID/locations/global/remediatorService",
    "state": "ENABLED",
    "serviceAccountEmail": "service-org-ORGANIZATION_ID@gcp-sa-v1-remediator.iam.gserviceaccount.com"
    }
    

    ORGANIZATION_ID は Google Cloud 組織 ID です。

Google 管理コンソールでサービス エージェント ロールを割り当てる

  1. Google 管理コンソールにログインします。

    Google 管理コンソールに移動

  2. [アカウント] > [管理者ロール] に移動し、[新しいロールを作成] をクリックします。

    • ロールの名前と説明(省略可)を入力し、[続行] をクリックします。

    • 管理コンソールの権限で、[サービス] > [モバイルとデバイス管理] に移動し、[デバイスと設定の管理] 権限を選択します。

    • [Admin API 権限] で、[グループ] に移動し、[読み取り] 権限を選択します。

    • [続行] をクリックし、エントリを確認してロールの作成を完了します。

    • [サービス アカウントの割り当て] に移動し、新しく作成したサービス エージェントのメールアドレスを入力します。

    • [追加] > [ロールを割り当て] をクリックします。

  3. Google Cloud CLI で次のコマンドを実行して、組織レベルでサービス エージェント(policyremediator.serviceAgent)ロールをサービス エージェントに付与します。これにより、サービス エージェントに組織の Identity and Access Management と他のアクセス ポリシーを読み取る権限が付与されます。

    gcloud organizations add-iam-policy-binding 'organizations/' \
       --member='serviceAccount:service-org-ORGANIZATION_ID@gcp-sa-v1-remediator.iam.gserviceaccount.com' \
       --role='roles/policyremediator.serviceAgent'
    

    ORGANIZATION_ID を Google Cloud 組織 ID に置き換えます。

IAP リソースのポリシー リメディエーターを有効にする

この機能を使用するには、BeyondCorp Enterprise ライセンスが必要です。

  1. Identity-Aware Proxy(IAP)ページに移動します。
    IAP に移動

  2. リソースを選択し、[設定] をクリックします。

  3. [アクセス権の修正] に移動し、[修復アクションを生成] を選択します。

リメディエーター ロールを付与する

IAP リソースへの拒否されたアクセスを修正する権限をユーザーに付与するには、Google Cloud CLI で次のコマンドを実行します。

gcloud iap web add-iam-policy-binding \
    --member='PRINCIPAL' \
    --role='roles/iap.remediatorUser'

PRINCIPAL は、プリンシパルまたはメンバーの識別子に置き換えます。識別子は通常、PRINCIPAL_TYPE:ID の形式です。例: user:my-user@example.com

詳細については、gcloud iap web add-iam-policy-binding をご覧ください。

プロジェクト レベルで IAP リソースへのアクセスを修正する権限をユーザーに付与するには、Google Cloud CLI で次のコマンドを実行します。

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member PRINCIPAL \
    --role roles/iap.remediatorUser

次のように置き換えます。

  • PROJECT_ID: Google Cloud プロジェクト ID。
  • PRINCIPAL: プリンシパルまたはメンバーの識別子。通常、PRINCIPAL_TYPE:ID の形式で指定します。例: user:my-user@example.com

ヘルプデスクによる修正

エンドユーザーがアクセスを拒否されると、トラブルシューティング情報(トラブルシューティング URL や修復トークンなど)を含む BeyondCorp Enterprise ページにリダイレクトされます。ユーザーが修復トークンを開く権限がない場合は、修復トークンをコピーして、ヘルプデスクに送信して追加のサポートを受けることができます。

ポリシー属性と関連メッセージ

次の表に、ポリシー リメディエーターでサポートされる属性の一覧を示します。

属性 デフォルトのメッセージ
ip_address 会社で許可されていないネットワーク
からアプリにアクセスしている。
region_code 会社が許可しているリージョン
からこのアプリにアクセスします。
is_secured_with_screenlock デバイスで画面ロック パスワードを設定してください。
デバイスの画面パスワードをオフにします。
verified_chrome_os 検証済みの [OS タイプ] のデバイスを使用してください。
検証済みの [OS タイプ] がないデバイスを使用します。
is_admin_approved_device 組織管理者によって承認されたデバイスを使用してください。
組織管理者によって承認されていないデバイスを使用します。
is_corp_owned_device 組織所有のデバイスを使用します。
組織が所有していないデバイスを使用します。
encryption_status 暗号化されたデバイスを使用します。
暗号化されていないデバイスを使用します。
os_type [OS タイプ] のデバイスに切り替えます。
[OS タイプ] のデバイスはこのアプリにアクセスできません。
os_version [バージョン] 以上の OS バージョンに更新します。
OS を [バージョン] より前のバージョンにダウングレードします。

トラブルシューティング

ポリシー リメディエーターは、次のいずれかが発生した場合に修復を生成できません。

  • リソースに矛盾するポリシーがある(ユーザーが Windows と macOS を使用して接続する必要があるなど)。
  • この属性はポリシー リメディエーターではサポートされていません。
  • サービス エージェントには修正する権限がありません。