<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>IAP on LIFELOG</title>
    <link>/tags/iap/</link>
    <description>Recent content in IAP on LIFELOG</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ja</language>
    <copyright>© 2026 0222-nnn</copyright>
    <lastBuildDate>Sat, 12 Sep 2026 00:00:00 +0900</lastBuildDate><atom:link href="/tags/iap/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>IAP経由のSSHはどこまで監査できるのか。OS LoginとVMログを実測した</title>
      <link>/blog/20260912_terraform_gcp_advanced_iap_ssh_port_forwarding/</link>
      <pubDate>Sat, 12 Sep 2026 00:00:00 +0900</pubDate>
      
      <guid>/blog/20260912_terraform_gcp_advanced_iap_ssh_port_forwarding/</guid>
      <description>&lt;h2 class=&#34;relative group&#34;&gt;概要 
    &lt;div id=&#34;概要&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34;
            style=&#34;text-decoration-line: none !important;&#34; href=&#34;#%e6%a6%82%e8%a6%81&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h2&gt;
&lt;p&gt;外部IPを付けず、tcp/80 も開けずに、VM 上の HTTP を見たい。IAP の SSH ポートフォワードでできます。許可するのは IAP の範囲からの tcp/22 だけです。&lt;/p&gt;
&lt;p&gt;ただ、そのあとに困ることが2つあります。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;誰に何の権限を渡せばいいのか。&lt;/strong&gt; 公式の手順どおりに書いたつもりで、自分では繋がるのに他の人が繋がらない、ということが起きます。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;誰が何をしたか、どこまで残るのか。&lt;/strong&gt; 踏み台を置かない構成なので、監査の材料がどこにあるのか分かりにくくなります。&lt;/p&gt;
&lt;p&gt;この2つを実測します。接続手順そのものは&lt;a href=&#34;https://github.com/tech-0222/terraform-gcp-examples/tree/main/Advanced-Examples/07-iap-ssh-port-forwarding&#34; target=&#34;_blank&#34;&gt;サンプルの README&lt;/a&gt; にあるので、ここでは扱いません。&lt;/p&gt;
&lt;p&gt;Google Cloud の Compute Engine を触ったことがある人向けです。外部IPなしの VM への接続経路を決めようとしている場面を想定しています。IAP の Web アプリ向け機能と、Organization Policy による追加要件は扱いません。&lt;/p&gt;

&lt;h2 class=&#34;relative group&#34;&gt;検証環境 
    &lt;div id=&#34;検証環境&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34;
            style=&#34;text-decoration-line: none !important;&#34; href=&#34;#%e6%a4%9c%e8%a8%bc%e7%92%b0%e5%a2%83&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Terraform v1.14.3、&lt;code&gt;hashicorp/google&lt;/code&gt; v7.46.0&lt;/li&gt;
&lt;li&gt;Google Cloud SDK 562.0.0&lt;/li&gt;
&lt;li&gt;Ops Agent 2.70.0、Debian 12&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;使用するコードは &lt;a href=&#34;https://github.com/tech-0222/terraform-gcp-examples/tree/main/Advanced-Examples/07-iap-ssh-port-forwarding&#34; target=&#34;_blank&#34;&gt;Advanced-Examples/07-iap-ssh-port-forwarding&lt;/a&gt; です。&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>TerraformでGKEプライベートクラスタと踏み台VMを作成してみた</title>
      <link>/blog/20260831_terraform_gcp_advanced_gke_private_bastion/</link>
      <pubDate>Mon, 31 Aug 2026 00:00:00 +0900</pubDate>
      
      <guid>/blog/20260831_terraform_gcp_advanced_gke_private_bastion/</guid>
      <description>&lt;h2 class=&#34;relative group&#34;&gt;概要 
    &lt;div id=&#34;概要&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34;
            style=&#34;text-decoration-line: none !important;&#34; href=&#34;#%e6%a6%82%e8%a6%81&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h2&gt;
&lt;p&gt;これまでのGKE記事（&lt;a href=&#34;/blog/20260811_terraform_gcp_gke/&#34;&gt;Basic編&lt;/a&gt;、&lt;a href=&#34;/blog/20260811_terraform_gcp_advanced_gke_workload_identity_gcs/&#34;&gt;Workload Identity編&lt;/a&gt;）は、コントロールプレーンも外部から到達できるパブリックエンドポイントのクラスタでした。実務ではコントロールプレーンを公開しないプライベートエンドポイントが基本です。&lt;/p&gt;
&lt;p&gt;ただしプライベートエンドポイントにすると、&lt;code&gt;kubectl&lt;/code&gt;を直接実行する経路がなくなります。VPCの外からは、Clusterが存在することさえAPIを通して確認できません。&lt;/p&gt;
&lt;p&gt;そこでVPC内に踏み台（bastion）VMを置き、&lt;code&gt;kubectl&lt;/code&gt;はすべて踏み台経由で実行する構成にします。踏み台自体もIAP TCP forwarding経由でのみSSHでき、外部IPを持ちません。&lt;/p&gt;
&lt;p&gt;Terraformの基本操作と、IAP SSH（&lt;a href=&#34;/blog/20260811_terraform_gcp_advanced_gce_iap_vpc/&#34;&gt;GCE + IAP編&lt;/a&gt;）は前提としています。&lt;/p&gt;
&lt;p&gt;Redis Memorystoreとの連携、Internal HTTP Load Balancerは扱いません。Podからの実際のWorkload Identity呼び出しも扱いません。これらは本記事の構成を土台に、別記事で扱う予定です。&lt;/p&gt;

&lt;h2 class=&#34;relative group&#34;&gt;検証すること 
    &lt;div id=&#34;検証すること&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34;
            style=&#34;text-decoration-line: none !important;&#34; href=&#34;#%e6%a4%9c%e8%a8%bc%e3%81%99%e3%82%8b%e3%81%93%e3%81%a8&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;コントロールプレーンもノードも外部IPを持たないGKE Standardクラスタを作成できること&lt;/li&gt;
&lt;li&gt;&lt;code&gt;master_authorized_networks&lt;/code&gt;で接続元を踏み台Subnetだけに絞れること&lt;/li&gt;
&lt;li&gt;踏み台VM経由でのみ&lt;code&gt;kubectl&lt;/code&gt;が実行できること&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Artifact Registryのイメージが実際にPodとして配信できること&lt;/strong&gt;（Node起動確認とは別）&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class=&#34;relative group&#34;&gt;前提環境 
    &lt;div id=&#34;前提環境&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34;
            style=&#34;text-decoration-line: none !important;&#34; href=&#34;#%e5%89%8d%e6%8f%90%e7%92%b0%e5%a2%83&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Google Cloud CLI、Terraform、Docker&lt;/li&gt;
&lt;li&gt;Billingが有効な検証用Google Cloud Project&lt;/li&gt;
&lt;li&gt;GKE、Compute Engine、IAM、Artifact Registryを操作できるGoogleアカウント&lt;/li&gt;
&lt;li&gt;検証時のバージョン：Terraform 1.14.3、google 7.43.0&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class=&#34;relative group&#34;&gt;今回の構成 
    &lt;div id=&#34;今回の構成&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34;
            style=&#34;text-decoration-line: none !important;&#34; href=&#34;#%e4%bb%8a%e5%9b%9e%e3%81%ae%e6%a7%8b%e6%88%90&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h2&gt;
&lt;p&gt;踏み台はGKE用とは別のSubnetに置きます。コントロールプレーンへの接続を、この踏み台SubnetのCIDRだけに絞るためです。IAPとArtifact RegistryはVPCの外にある、Google管理のサービスです。&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Terraformで外部IPなしのGCEへIAP経由でSSH接続してみた</title>
      <link>/blog/20260811_terraform_gcp_advanced_gce_iap_vpc/</link>
      <pubDate>Tue, 11 Aug 2026 00:00:00 +0900</pubDate>
      
      <guid>/blog/20260811_terraform_gcp_advanced_gce_iap_vpc/</guid>
      <description>&lt;h2 class=&#34;relative group&#34;&gt;概要 
    &lt;div id=&#34;概要&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34;
            style=&#34;text-decoration-line: none !important;&#34; href=&#34;#%e6%a6%82%e8%a6%81&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h2&gt;
&lt;p&gt;管理用の22番Portをインターネット全体へ公開すると、常時スキャンや不正アクセスの対象になります。かといって毎回踏み台サーバーを維持するのも手間です。&lt;/p&gt;
&lt;p&gt;Identity-Aware Proxy（IAP）のTCP forwardingを使えば、外部IPを持たないVMへSSHできます。SourceをGoogleのIAP用Address Rangeだけに絞り、接続者はIAMで制御する構成です。ここではTerraformで専用VPCとSpot VMを作成し、実際にIAP経由で接続します。&lt;/p&gt;
&lt;p&gt;Terraformの基本操作は前提としています。IAPやOS Loginを初めて扱う方向けです。&lt;/p&gt;
&lt;p&gt;Cloud NAT、踏み台VM経由でのHTTP/HTTPS転送、複数Userの権限設計は扱いません。&lt;/p&gt;

&lt;h2 class=&#34;relative group&#34;&gt;検証すること 
    &lt;div id=&#34;検証すること&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34;
            style=&#34;text-decoration-line: none !important;&#34; href=&#34;#%e6%a4%9c%e8%a8%bc%e3%81%99%e3%82%8b%e3%81%93%e3%81%a8&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;外部IPなしのSpot VMを専用VPCへ作成できること&lt;/li&gt;
&lt;li&gt;SSH IngressをIAP TCP forwardingの範囲へ限定できること&lt;/li&gt;
&lt;li&gt;OS LoginとIAMで接続者を制御できること&lt;/li&gt;
&lt;li&gt;IAP Tunnel経由でVMへSSH接続できること&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class=&#34;relative group&#34;&gt;前提環境 
    &lt;div id=&#34;前提環境&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34;
            style=&#34;text-decoration-line: none !important;&#34; href=&#34;#%e5%89%8d%e6%8f%90%e7%92%b0%e5%a2%83&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Google Cloud CLIとApplication Default Credentials（ADC）、Terraform&lt;/li&gt;
&lt;li&gt;Billingが有効な検証用Google Cloud Project&lt;/li&gt;
&lt;li&gt;Compute Engine、IAP、IAMを操作できるGoogleアカウント&lt;/li&gt;
&lt;li&gt;検証時のバージョン：Terraform 1.14.3、google 7.43.0&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class=&#34;relative group&#34;&gt;今回の構成 
    &lt;div id=&#34;今回の構成&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34;
            style=&#34;text-decoration-line: none !important;&#34; href=&#34;#%e4%bb%8a%e5%9b%9e%e3%81%ae%e6%a7%8b%e6%88%90&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h2&gt;
&lt;p&gt;VMは専用VPCの中にあり、外部IPを持ちません。IAPはVPCの外にあるGoogle管理のサービスです。&lt;/p&gt;</description>
      
    </item>
    
  </channel>
</rss>
