サービス アカウントは特別なタイプのアカウントであり、通常はユーザーではなく、アプリケーションや Compute Engine インスタンスなどのコンピューティング ワークロードで使用されます。このアカウントは、固有のメールアドレスで識別されます。
アプリケーションはサービス アカウントを使用して、承認された API 呼び出しを行います。これは、サービス アカウント自体として承認されるか、ドメイン全体の委任により Google Workspace または Cloud Identity ユーザーとして承認されます。 アプリケーションがサービス アカウントとして認証されると、アプリケーションはサービス アカウントにアクセス権が付与されているすべてのリソースにアクセスできます。
必要に応じて、サービス アカウントを使用してトラフィック ソースを特定し、Secure Web Proxy ポリシーを構成できます。
このガイドでは、次の方法について説明します。
- 空のポリシーを使用して Secure Web Proxy インスタンスを作成します。
- サービス アカウントを作成してリソースに接続します。
- サービス アカウントを使用して、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 インスタンスを作成するには、まず空のセキュリティ ポリシーを作成してから、ウェブプロキシを作成します。
空のセキュリティ ポリシーを作成する
コンソール
Google Cloud コンソールで [ネットワーク セキュリティ] ページに移動します。
[Secure Web Proxy] をクリックします。
[ポリシー] タブをクリックします。
[Create a policy] をクリックします。
作成するポリシーの名前を入力します(例:
myswppolicy
)。ポリシーの説明(
My new swp policy
など)を入力します。[リージョン] リストで、ポリシーを作成するリージョンを選択します。
[作成] をクリックします。
Cloud Shell
任意のテキスト エディタを使用して、
POLICY_FILE
.yaml ファイルを作成します。POLICY_FILE
は、ポリシー ファイルのファイル名に置き換えます。作成した YAML ファイルに以下を追加します。
name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME description: POLICY_DESCRIPTION
以下を置き換えます。
PROJECT_NAME
: プロジェクトの名前REGION
: このポリシーが適用されるリージョンPOLICY_NAME
: 作成するポリシーの名前POLICY_DESCRIPTION
: 作成するポリシーの説明
セキュリティ ポリシーをインポートします。
gcloud network-security gateway-security-policies import POLICY_NAME \ --source=POLICY_FILE.yaml \ --location=REGION
ウェブプロキシを作成する
コンソール
Google Cloud コンソールで [ネットワーク セキュリティ] ページに移動します。
[Secure Web Proxy] をクリックします。
[ウェブプロキシを設定] をクリックします。
作成するウェブプロキシの名前を入力します(例:
myswp
)。ウェブプロキシの説明を入力します(例:
My new swp
)。[リージョン] リストで、ウェブプロキシを作成するリージョンを選択します。
[ネットワーク] リストで、ウェブプロキシを作成するネットワークを選択します。
[サブネットワーク] リストで、ウェブ プロキシを作成するサブネットワークを選択します。
ウェブプロキシの IP アドレスを入力します。
[証明書] リストで、ウェブプロキシの作成に使用する証明書を選択します。
[ポリシー] リストで、ウェブプロキシに関連付けるために作成したポリシーを選択します。
[作成] をクリックします。
Cloud Shell
任意のテキスト エディタを使用して、
GATEWAY_FILE
.yaml ファイルを作成します。GATEWAY_FILE
は、ウェブ プロキシ ファイルのファイル名に置き換えます。作成した 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 アドレスが選択されるようにします。
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
エラーが想定されます。
サービス アカウントを作成してリソースに接続する
サービス アカウントを作成して接続するには、次の手順を行います。
Secure Web Proxy ルールを作成する
Secure Web Proxy ルールを作成するには、次の手順を行います。
任意のテキスト エディタを使用して
RULE_FILE
.yaml ファイルを作成します。RULE_FILE
は、選択したファイル名に置き換えます。選択したサービス アカウントから 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.matchServiceAccount('SERVICE_ACCOUNT') && host() == 'example.com'"
SERVICE_ACCOUNT
は、許可するサービス アカウントに置き換えます。これは、サービス アカウントのメールアドレスにする必要があります。
作成したルールをインポートします。
gcloud network-security gateway-security-policies rules import RULE_NAME \ --source=RULE_FILE.yaml \ --location=REGION \ --gateway-security-policy=POLICY_NAME
接続をテストする
接続をテストするには、SERVICE_ACCOUNT
が接続されたリソースから curl
コマンドを使用します。
curl -x https://IPv4_ADDRESS:443 http://example.com
--proxy-insecure
IPv4_ADDRESS
は、Secure Web Proxy インスタンスの IPv4 アドレスに置き換えます。