0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

連載3: Windows 11 WSL2 で始めるIaC:WSL2 × Google Cloud × IaC 実践ガイド

Last updated at Posted at 2026-01-07

eyechatch-TOP306_1200x742.png

第3回:Ansible × IAP セキュア接続編

パブリックIPは不要 —— IAPで実現するゼロトラスト Ansible 運用

プロジェクトの論理構造と実現される世界

現代のインフラ設計において、VMにパブリックIPを付与し、SSHポートを公開するのは避けるべき習慣です。
本ステップでは、Google Cloud の Identity-Aware Proxy(IAP)を SSH のトンネルとして活用します。
Ansible をこのトンネル経由で実行することで、インターネットからの直接攻撃を完全に遮断します。
「踏み台サーバー」という運用コストの高い資産を持たずに、安全な構成管理を実現するのが本記事の狙いです。

Ansible の導入と環境分離

Ubuntu 24.04 LTS 等の現代的な環境では、システムの Python 破壊を防ぐために pip の直接利用が制限されています。
本ガイドでは、OSのパッケージ管理システム(apt)を利用して、安定した実行環境を確保します。

[COMMAND]

# Ansible のインストール
sudo apt update
sudo apt install -y ansible

💡 LOGIC: インフラ実行環境としての安定性を重視し、/usr/bin/ansible で管理される構成を採用します。

H2:IAP(Identity-Aware Proxy)経由の接続設定

Ansible が Google Cloud CLI のトンネル機能を自動で利用するように、SSH の動作をカスタマイズします。

STEP1:ansible.cfg の構築

プロジェクトのルートディレクトリに ansible.cfg を作成します。
⚠️ CAUTION: 本構成は、第1回で構築した Google Cloud CLI がインストール・認証済みであること を前提としています。

[PATH] ansible.cfg

[defaults]
inventory = ./inventory.ini
host_key_checking = False

[ssh_connection]
# IAP経由で接続するためのマジックコマンド
ssh_args = -o ProxyCommand="gcloud compute ssh --zone=us-central1-a %h --tunnel-through-iap --dry-run"

💡 LOGIC: ProxyCommand 内で gcloud compute ssh を呼び出すことで、Ansible は透過的に IAP トンネルを利用できます。

STEP2:IAM 権限と OS Login の有効化

IAP経由の SSH を成功させるには、以下の Google Cloud 側の設定が必須です。

  1. OS Login の有効化: プロジェクトまたはインスタンスのメタデータで enable-oslogin: TRUE を設定します。
    💡 LOGIC: OS Login を利用することで、IAMとSSHユーザー管理を一元化し、個別の鍵管理を不要にします。
  2. IAM権限: 実行ユーザーに roles/iap.tunnelResourceAccessor および roles/compute.osLogin を付与します。
  3. Firewall: Google Cloud 側の Firewall で、IAPのIPレンジ(35.235.240.0/20)からの tcp:22 を許可します。

疎通確認(Pingテスト)

実際に、パブリックIPを持たない VM に対して Ansible で接続ができるかテストします。

[COMMAND]

# インベントリファイルの例(VMの名称を直接指定)
# [web_servers]
# my-secure-vm

ansible web_servers -m ping

  • 合格: SUCCESS => {"changed": false, "ping": "pong"}
  • 地雷ポイント: 認証エラーが出る場合は、OS Login の権限が正しく反映されているか再確認してください。

セクションサマリー(Machine-readable summary)

purpose: AnsibleとIAPを統合したセキュアな構成管理環境の構築
target: セキュリティ要件の厳しい実務環境のエンジニア
used_services:
  - Ansible v2.x
  - Google Cloud IAP (Identity-Aware Proxy)
  - Compute Engine (OS Login)
reference_urls:
  - https://cloud.google.com/compute/docs/oslogin?hl=ja
risk_notes: OS Login が有効でない場合、SSH鍵の不一致により接続に失敗するため注意

[Source: https://cloud.google.com/iap/docs/using-tcp-forwarding?hl=ja]


次回は、本連載の総括です。Google Cloud 無料枠を使い倒すための、コスト最適化チェックリストをお届けします。


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?