<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>CloudArmor on LIFELOG</title>
    <link>/tags/cloudarmor/</link>
    <description>Recent content in CloudArmor on LIFELOG</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ja</language>
    <copyright>© 2026 0222-nnn</copyright>
    <lastBuildDate>Fri, 11 Sep 2026 00:00:03 +0900</lastBuildDate><atom:link href="/tags/cloudarmor/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Cloud Armorで送信元IPを拒否したら、リクエストはバックエンドに届かなかった</title>
      <link>/blog/20260911_terraform_gcp_advanced_regional_alb_cloud_armor/</link>
      <pubDate>Fri, 11 Sep 2026 00:00:03 +0900</pubDate>
      
      <guid>/blog/20260911_terraform_gcp_advanced_regional_alb_cloud_armor/</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;Cloud Armor で送信元を絞ったとき、&lt;strong&gt;拒否されたリクエストはどこまで来ているのか。&lt;/strong&gt; バックエンドのログに出ないのは「届いていないから」なのか、「出していないだけ」なのか。&lt;/p&gt;
&lt;p&gt;見えないものを「無い」と決めるのは危ないので、クエリ文字列に識別子を入れたリクエストを送って確かめます。同じ1回のリクエストを、クライアント・LBのログ・バックエンドのログの3か所で追えます。&lt;/p&gt;
&lt;p&gt;あわせて、プレビューの動作も確かめます。ルールを有効にする前に「もし有効だったら何が止まるか」を見る仕組みです。&lt;/p&gt;
&lt;p&gt;プレビューにしたルールは判定するだけで、実際には止めません。判定はログと専用メトリクスに残ります。&lt;/p&gt;
&lt;p&gt;3つの状態で、応答・ログ・メトリクスの見え方を並べます。&lt;/p&gt;
&lt;p&gt;Google Cloud のロードバランサを触ったことがある人向けです。構成の作り方は&lt;a href=&#34;/blog/20260911_terraform_gcp_advanced_regional_alb_proxy_subnet/&#34;&gt;前々回&lt;/a&gt;で扱っており、ここでは Armor の差分だけを見ます。WAF ルールやレート制限は扱いません。&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;/ul&gt;
&lt;p&gt;使用するコードは &lt;a href=&#34;https://github.com/tech-0222/terraform-gcp-examples/tree/main/Advanced-Examples/09-regional-alb-cloud-armor&#34; target=&#34;_blank&#34;&gt;Advanced-Examples/09-regional-alb-cloud-armor&lt;/a&gt; です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; Advanced-Examples/09-regional-alb-cloud-armor
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp terraform.tfvars.example terraform.tfvars
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# project_id / allowed_src_ips（自分のグローバルIPを /32 で）/ iap_member を書く&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;terraform init
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;terraform apply
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;terraform apply   &lt;span class=&#34;c1&#34;&gt;# 2回目。理由は後述&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;create_deny_client = true&lt;/code&gt; にすると、&lt;strong&gt;許可リストに載っていない送信元&lt;/strong&gt;として使える検証用 VM も作られます。&lt;code&gt;access_config {}&lt;/code&gt; でエフェメラルな外部IPが付くので、そのIPで出ていきます。&lt;/p&gt;</description>
      
    </item>
    
  </channel>
</rss>
