たろログ2

実験的運用により、記事品質が乱高下することがあります。予めご了承ください。

2022-07-13 Google Cloud Skills Boost 実施

Cloud IAM の Custom Role

predefined role を選択して表示されるメニューから、「create role from this role」をクリックすることでサクッと作成できる。

Firewall rules

  • デフォルトでは、ネットワーク全体に適用される。
  • 特定のインスタンスにのみ適用する方法がある (Target の指定)

Target

以下の 3種類の指定方法がある。「ネットワーク内の全て」については物理の firewall においても馴染みのある設定だが、他の二つについては Google Cloud に特殊な設定だなと思った。

  • ネットワーク内のすべて
  • 特定の Target Tag が付与されたもの
  • 特定の Service account が付与されたもの

Source

以下の 4種類の指定方法がある。「IP range」については馴染みのある設定だが、他の 3つについては Target で述べたのと同じく、物理の firewall では馴染みのない設定だなと思った。

  • IP range
  • Subnet (VPC Subnet)
  • Source tag
  • Service account

Firewall rules についての Lab

例によってこれも実施できなかった。 Review の動画を確認したのみとなる。

「Web-Server」のタグを付与した Blue サーバとタグなしの Green サーバの二つのサーバを作成する。

「Web-Server」タグをターゲットとして、送信元 IPアドレス全許可で、 80番ポートのインバウンドトラフィックを許可する firewall ルールを作成する。

最後に、external アドレスを指定して Compute Engine インスタンス、ブラウザなどから HTTP アクセスを行う。

Blue サーバに対しては HTTP でアクセスできるが、 Green サーバに対してはできないことを確認する。

また、作成した firewall ルールを削除し、 Blue サーバに対しても HTTP アクセスができなくなることを確認する。

Shared VPC

「XPN」と呼称されたりもする。

同じ組織において、異なるプロジェクトの間で通信を行いたい場合に必要となる。

Multiple Network interface で同様のことを実現することも可能だが、こちらの手法のほうがシンプルですっきりした構成を作れるのかなと思った。

同様のサービスに VPC Network Peering がある。

Shared VPC は同一組織においてのみ利用できる。

VPC Network Peering は、同一組織か否かに関わらず利用できる。

Shared VPC の設定方法

Cloud IAM を利用して、権限の委譲を行う。

まず「Organization Admin」の権限を持つアカウントが、「Shared VPC Admin」の権限をアカウントに割り当てる。

プロジェクトの作成や削除は、「Organization Admin」の責務である。

「Shared VPC Admin」権限を割り当てられたアカウントは、ホストプロジェクトで「Shared VPC」を有効化し、サービスプロジェクトとして構成する他のプロジェクトをポチポチと選択する。

加えて、「Service Project Admin」権限をアカウントに割り当てる。これによって、Shared VPC Network の一部または全部のアクセスの権限を委譲する。

「Service Project Admin」の権限を割り当てられたアカウントは、 Shared VPC で定義されたリソースを管理する。

ハンズオン

「Service Project Admin」権限を割り当てられたアカウントで Compute Engine インスタンスを作成する際、ネットワークのカラムで、「Network shared with me」という選択肢が選択できる。

これを選択することで、VM インスタンスを Shared VPC 上に作成できる。

ハンズオンでは、同じ Shared VPC に作成した異なるプロジェクトのインスタンス同士が内部IPアドレス経由で ping で疎通できることを確認した (異なるプロジェクトのインスタンスは、通常内部IPアドレス経由で ping 疎通を行うことはできない)