説明
Private Google Access は、外部 IP アドレスのない VM から対応する Google API やサービスへアクセスするためのサブネット設定です。必要なワークロードで無効になっており、他の接続経路もない場合は API 呼び出しが失敗することがあります。
API の IAM 権限を付与したり、すべての外部通信を遮断したりする機能ではありません。タスクに値がないだけで既存サブネットの状態を断定せず、適用済み設定とネットワーク構成を確認してください。
想定される影響
- 外部 IP のないワークロードが必要な Google API に接続できなくなる場合があります。
- 接続問題への対処として、不要な外部 IP や広い通信経路を追加してしまう場合があります。
対処方法
- 必要に応じて
private_ip_google_access: yesを設定してください。承認済みの別の接続方式がある場合は、その経路と要件も確認してください。 - DNS、経路、ファイアウォール、API 権限を確認し、外部 IP のない VM から接続をテストしてください。一般のインターネットアクセス制限は別途管理してください。
例
サブネットタスクの抜粋です。実際の network 結果オブジェクト、プロジェクト、サービスアカウントの JSON ファイルが必要です。DNS、ルーティング、ファイアウォール設定は含まれていません。
変更前
yaml
- name: 서브넷 생성
google.cloud.gcp_compute_subnetwork:
name: ansiblenet
region: us-west1
network: "{{ network }}"
ip_cidr_range: 172.16.0.0/16
project: test_project
auth_kind: serviceaccount
service_account_file: /tmp/auth.pem
state: present
変更後
yaml
- name: 서브넷 생성
google.cloud.gcp_compute_subnetwork:
name: ansiblenet
region: us-west1
network: "{{ network }}"
ip_cidr_range: 172.16.0.0/16
project: test_project
auth_kind: serviceaccount
service_account_file: /tmp/auth.pem
private_ip_google_access: yes
state: present
補足:
- 変更前: Private Google Access を指定していません。既存サブネットの実際の状態を確認する必要があります。
- 変更後: 機能を明示的に有効化します。ネットワーク経路と Google API の認証・権限も必要です。