「世の中には難しいことが多い!」と感じることが多い私が、様々な用語を、初学者向けにわかりやすく全力で解説します。
解説する用語
Identity-Aware Proxy(IAP)について解説をします。
IAPはGoogle Cloudのゼロトラストセキュリティを実現するためのBeyondCorp Enterpriseの一つになります。
とにかく便利なIAPですが、公式ドキュメントを読むだけでは理解するのが難しいかなと思います。Google Cloudが提供する革新的な製品の1つなので、ぜひ本記事を読んで理解してみてください。
Identity-Aware Proxy(IAP)とは
Google CloudのIdentity-Aware Proxyは、クラウド上のアプリケーションやリソースへのアクセスを制御する、認証と認可サービスです。GoogleアカウントとIAMを使用して、安全かつ簡単にアプリケーションを保護することが出来ます。略称はIAPです。
詳細に説明するよ
IAPについて、詳細に説明をしていきます。
ユーザーごとにサーバーへのアクセス制限をしたい場合はどのように実現をするのでしょうか。例えば、以下の図のように、社内のユーザーのみが社内システムにアクセスできるようにしたいとします。
従来であれば、ファイヤーウォールを作成し、内部と外部の接続を分けることで、外部からの接続を拒否するようにします。また、社内からのネットワークを許可するために、社内ネットワークのIPアドレスを許可するように登録をするかもしれません。
しかし、これらは悪意のあるユーザーが社内ネットワークに入ってしまうとセキュリティが機能しなくなるという欠点があります。
IPアドレスで制限している場合は、テレワークの社員がいた際に、その社員用に社外のIPアドレスを許可する必要があります。このように、ユーザーごとに都度IPアドレスを設定していかなければならないのはとてもめんどくさいですね。。
IAPを使用することで、ユーザーやデバイス毎に、クラウド上のアプリケーションやリソースへのアクセスを制御することが出来ます。構成図としては以下のようなイメージです。ユーザーはIAPを経由して、各リソースへアクセスします。
ユーザーはGoogleアカウントで認証します。IAPを経由して、リソースへアクセスすることが出来るのは、IAMで適切なロールを付与されたGoogleアカウントを持つユーザーのみになります。
以下の図では、yamada@gmail.comというGoogleアカウントにIAPへアクセスできるIAMポリシーを設定しています。そのため、yamada@gmail.comというアカウントは社内システムへ接続が出来るようになります。
Googleアカウントに加えて、以下の単位でIAMロールを付与することが出来ます。
- Google アカウント: user@gmail.com
- Google グループ: admins@googlegroups.com
- サービス アカウント: server@example.gserviceaccount.com
- Google Workspace ドメイン: example.com
Googleアカウントで認証をすることが出来るので、デバイス毎にIPアドレスを登録しなくて良いのでとても楽ちんですね。社内でGoogle Workspaceのドメインを作成していれば、ドメインにIAMロールを付与することで、社内のユーザーを一括でアクセス許可することが出来ます。
IAPはCompute Engine、Cloud Run、App Engine、GKE、オンプレミスなどのリソースにアクセスする際に使用することが出来ます。
従来の「社内ネットワークは安全、外部ネットワークは危険」という考え方に基づく境界型防御ではなく、「社内外すべてのネットワーク、ユーザー、デバイスを信頼せず、アクセスごとに検証する」という新しいセキュリティの考え方をゼロトラストセキュリティと言います。
Google Cloudではゼロトラストセキュリティの製品をBeyondCorpとして提供しています。BeyondCorpについて気になる方はぜひ調べてみてください。
外部IPを持たないVMインスタンスに接続できる
IAPを使用すると、外部 IP アドレスを持たないCompute EngineのLinuxの仮想マシン(VMインスタンス)にSSH接続をすることが出来るようになります。
通常だと、メンテナンスなどで、管理者がVMインスタンスにSSH接続をする場合は外部IPアドレスを持たせます。外部IPアドレスがないVMインスタンスにはSSH接続をすることが出来ません。
SSH接続しようとすると、以下のメッセージが出て接続できません。
しかし、セキュリティ上の理由から、VMインスタンスには外部IPアドレスを持たせたくない場合があると思います。外部IPアドレスを持たないVMインスタンスに接続するためには踏み台サーバーから接続をする必要があります。
IAPを使用することで、踏み台サーバーを用意せずとも外部IPアドレスを持たない、内部IPアドレスのみのVMインスタンスに接続をすることが出来るようになります。
これはとても便利なので、こちらの用途で使用されることもかなり多いかなと思います。社内のセキュリティポリシーで外部IPアドレスを持たせない方針のところも多いです。
設定方法については、以下の記事を参考にしてみてください。
まとめ
- IAPとは、GoogleアカウントとIAMでセキュアでかんたんにリソースへのアクセス制限が出来るGoogle Cloudの製品です
- IAPを使用すると、外部IPアドレスを持たないVMインスタンスにSSH接続をすることが出来ます
参考
本サイトでの注意事項
本サイトではなんとなく理解することを目的としているため正確性に欠ける表現があります。より正確な情報を詳しく知りたい場合は公式ドキュメントを参照ください。