タグを使用してポリシーを作成する

Resource Manager タグは、Google Cloud リソースへのアクセスを制御します。Resource Manager タグを使用すると、Google Cloud リソースを整理し、リソースに特定のタグが付加されているかどうかに基づいて、条件付きでポリシーを許可または拒否できます。Resource Manager タグを使用すると、各仮想マシン(VM)インスタンスにセグメントとサービスタイプでタグを付けることができます。Resource Manager タグを使用すると、Secure Web Proxy ポリシーを作成するときにホストを一意に識別できます。

このガイドでは、次の方法について説明します。

  • 空のポリシーを使用して Secure Web Proxy インスタンスを作成します。
  • Resource Manager タグを作成して VM インスタンスに適用します。
  • Resource Manager タグを使用して、Secure Web Proxy ポリシーを作成します。
  • Secure Web Proxy インスタンスを作成します。
  • VM からの接続をテストします。

準備

  • 初期設定手順を完了します。

  • 組織管理者に、タグの作成と更新に必要なロールを付与してもらいます。

  • Google Cloud CLI バージョン 406.0.0 以降がインストールされていることを確認します。

    gcloud version | head -n1
    

    以前の gcloud CLI バージョンがインストールされている場合は、バージョンを更新します。

    gcloud components update --version=406.0.0
    

空のポリシーを使用して Secure Web Proxy インスタンスを作成する

Secure Web Proxy インスタンスを作成するには、まず空のセキュリティ ポリシーを作成してから、ウェブプロキシを作成します。

空のセキュリティ ポリシーを作成する

コンソール

  1. Google Cloud コンソールで [ネットワーク セキュリティ] ページに移動します。

    [ネットワーク セキュリティ] に移動

  2. [Secure Web Proxy] をクリックします。

  3. [ポリシー] タブをクリックします。

  4. [Create a policy] をクリックします。

  5. 作成するポリシーの名前を入力します(例: myswppolicy)。

  6. ポリシーの説明(My new swp policy など)を入力します。

  7. [リージョン] リストで、ポリシーを作成するリージョンを選択します。

  8. [作成] をクリックします。

Cloud Shell

  1. 任意のテキスト エディタを使用して、POLICY_FILE.yaml ファイルを作成します。POLICY_FILE は、ポリシー ファイルのファイル名に置き換えます。

  2. 作成した YAML ファイルに以下を追加します。

    name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    description: POLICY_DESCRIPTION
    

    以下を置き換えます。

    • PROJECT_NAME: プロジェクトの名前
    • REGION: このポリシーが適用されるリージョン
    • POLICY_NAME: 作成するポリシーの名前
    • POLICY_DESCRIPTION: 作成するポリシーの説明
  3. セキュリティ ポリシーをインポートします。

    gcloud network-security gateway-security-policies import POLICY_NAME \
        --source=POLICY_FILE.yaml \
        --location=REGION
    

ウェブプロキシを作成する

コンソール

  1. Google Cloud コンソールで [ネットワーク セキュリティ] ページに移動します。

    [ネットワーク セキュリティ] に移動

  2. [Secure Web Proxy] をクリックします。

  3. [ウェブプロキシを設定] をクリックします。

  4. 作成するウェブプロキシの名前を入力します(例: myswp)。

  5. ウェブプロキシの説明を入力します(例: My new swp)。

  6. [リージョン] リストで、ウェブプロキシを作成するリージョンを選択します。

  7. [ネットワーク] リストで、ウェブ プロキシを作成するネットワークを選択します。

  8. [サブネットワーク] リストで、ウェブ プロキシを作成するサブネットワークを選択します。

  9. ウェブプロキシの IP アドレスを入力します。

  10. [証明書] リストで、ウェブ プロキシの作成に使用する証明書を選択します。

  11. [ポリシー] リストで、ウェブプロキシに関連付けるために作成したポリシーを選択します。

  12. [作成] をクリックします。

Cloud Shell

  1. 任意のテキスト エディタを使用して、GATEWAY_FILE.yaml ファイルを作成します。GATEWAY_FILE は、ウェブ プロキシ ファイルのファイル名に置き換えます。

  2. 作成した YAML ファイルに以下を追加します。

    name: projects/PROJECT_NAME/locations/REGION/gateways/GATEWAY_NAME
    type: SECURE_WEB_GATEWAY
    ports: [GATEWAY_PORT_NUMBERS]
    certificateUrls: [CERTIFICATE_URLS]
    gatewaySecurityPolicy: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    network: projects/PROJECT_NAME/global/networks/NETWORK_NAME
    subnetwork: projects/PROJECT_NAME/regions/REGION/subnetworks/SUBNET_NAME
    addresses: [GATEWAY_IP_ADDRESS]
    scope: samplescope
    

    以下を置き換えます。

    • GATEWAY_NAME: このインスタンスの名前。
    • GATEWAY_PORT_NUMBERS: このゲートウェイのポート番号のリスト(例: [80,443]
    • CERTIFICATE_URLS: SSL 証明書の URL のリスト
    • SUBNET_NAME: GATEWAY_IP_ADDRESS を含むサブネットの名前

    • GATEWAY_IP_ADDRESS: 初期設定手順で以前に作成したプロキシ サブネット内の Secure Web Proxy インスタンスの IP アドレスのオプションのリスト

      IP アドレスを一覧参照しない場合、フィールドを省略して、ウェブプロキシによって IP アドレスが選択されるようにします。

  3. Secure Web Proxy インスタンスを作成します。

    gcloud network-services gateways import GATEWAY_NAME \
        --source=GATEWAY_FILE.yaml \
        --location=REGION
    

接続をテストする

接続をテストするには、Virtual Private Cloud(VPC)ネットワーク内の任意の VM から curl コマンドを使用します。

  curl -x https://GATEWAY_IP_ADDRESS:PORT_NUMBER https://www.example.com --proxy-insecure

403 Forbidden エラーが発生します。

Resource Manager タグを作成して接続する

Resource Manager タグを作成して添付するには、次の手順を行います。

  1. タグキーと値を作成する

    タグを作成する際は、GCE_FIREWALL の目的を指定します。Secure Web Proxy などの Google Cloud ネットワーキング機能では、タグを適用する GCE_FIREWALL 目的が必要です。ただし、他のアクションにタグを使用することもできます。

  2. タグを VM インスタンスにバインドする

Secure Web Proxy ルールを作成する

Secure Web Proxy ルールを作成するには、次の手順を行います。

  1. 任意のテキスト エディタを使用して RULE_FILE.yaml ファイルを作成します。RULE_FILE は、選択したファイル名に置き換えます。

  2. 選択したタグから URL にアクセスできるようにするには、YAML ファイルに以下を追加します。

    name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME
    description: RULE_DESCRIPTION
    enabled: true
    priority: RULE_PRIORITY
    sessionMatcher: CEL_EXPRESSION
    basicProfile: ALLOW
    

    以下を置き換えます。

    • RULE_NAME: このルールの名前
    • RULE_DESCRIPTION: 作成するルールの説明
    • RULE_PRIORITY: このルールの優先度。数字が小さいほど優先度が高くなります。
    • CEL_EXPRESSION: Common Expression Language(CEL)式

      詳細については、CEL マッチャーの言語リファレンスをご覧ください。

    たとえば、目的のタグから example.com へのアクセスを許可するには、sessionMatcher 用に作成した YAML ファイルに以下を追加します。

    sessionMatcher: "source.matchTag('TAG_VALUE') && host() == 'example.com'"
    

    TAG_VALUE は、許可する tagValues/1234 形式のタグに置き換えます。

  3. 作成したルールをインポートします。

    gcloud network-security gateway-security-policies rules import RULE_NAME \
       --source=RULE_FILE.yaml \
       --location=REGION \
       --gateway-security-policy=POLICY_NAME
    

接続をテストする

接続をテストするには、TAG_VALUE タグに関連付けられた VM から curl コマンドを使用します。

curl -x https://IPv4_ADDRESS:443 http://example.com 
--proxy-insecure

IPv4_ADDRESS は、Secure Web Proxy インスタンスの IPv4 アドレスに置き換えます。

次のステップ