LoginSignup
5
1

More than 3 years have passed since last update.

GCP の Identity Aware-Proxy を使って SSH した話

Last updated at Posted at 2020-12-22

Cloud Identity Aware-Proxy とは?

一言で表すと、Google のアカウントを使ってセキュアにリソースに接続できるプロキシサービスです。

何ができる?

  • GCP 上の VM に対して、アクセス制御を行うことができる
  • Google アカウントの ID を確認して、制御を行うことができる
  • VPN を使用することなく、外部ネットワークからの作業ができる
  • ゼロトラストのアクセスモデルを実装できる

Identity-Aware Proxy 概要

IAP との出会いの経緯

GCP 上の GCE にセキュアに SSH できる方法がないかを探しており、いくつかの候補を出していました。

  1. GIP を使用して目的のインスタンスへ接続を行う
  2. GIP を付与した踏み台インスタンスを作成し、踏み台インスタンスを経由して目的のインスタンスへ接続を行う

2 に関しては、公式のドキュメントでも紹介されており、オンプレでの NW 構築を経験していた自分の中ではかなり有力な候補でした。

図にするとこのような感じ↓
GCP のサービスを使用せずに、PrivateサブネットのGIPを持たないインスタンスに接続する場合
スクリーンショット 2020-12-17 16.47.44.png

しかし、この方法だといくつか面倒なことが

  • 鍵の管理が面倒

    • GCP のサービスを使用せずに GCE へとアクセスしようとすると、ローカルでの鍵の作成・保管が必要になる
    • ローカルで作成した公開鍵を、SSH 先のインスタンスに登録する必要がある
  • GIP 関連

    • 固定の GIP を取得する必要がある
    • 常に不正にアクセスされるリスクがある

まず、鍵の管理については、 gcloud コマンドを使用したSSH 接続の方法 にて解決しました。
さすがクラウドって感じで、めんどくさい鍵周りの部分をやってくれます。

そして、 GIP を使用しないで SSH できないかと調べていたところ、たどり着いたのが IAP でした。

IAP で使用した機能

IAP には様々な機能があるのですが、今回の GCE への SSH 接続には、 Cloud IAP TCP Fowarding という機能を使用しました。

何ができるのか

  • トンネルを使用した TCP 接続ができる

通信のフロー

  1. TCP のコネクションを IAP を使用して HTTPS でラッピングする
  2. IAM にて権限を確認する
    1. 接続先のリソースの権限
    2. IAP トンネルを使用する権限
  3. VPC に紐づく FW ルールを確認(ネットワークレベル)
    1. IAP から リソースへの接続が許可されているか

図にするとこのようになります↓
_2020-12-21_17.22.55.png

IAP が踏み台インスタンスの役割をしてくれてるため、インスタンスへ GIP を付与する必要がなくなり、当初考えていた面倒な点を解消することができました。

一つ気になる点が

確かに IAP を使用することで、GCE へのセキュアな通信を確立することができましたが、1つ気になることが出てきてしまいました。
Google アカウントが漏れたらやりたい放題じゃん...

これを解決するために、Access Context Manager という機能を使用しました。
別の機能になってしまうので詳細な説明は割愛しますが、一言で言うと" IPやデバイスなどの単位で、プロジェクトやリソースへのアクセス制御が行えるサービス "です。
組織単位でポリシーを作成し、プロジェクト単位でポリシーを適用します。
今回の場合は、IP 制限のポリシーを作成し、IAP トンネルを使用する IAM ロールにアタッチして使用しました。
この機能を使用することで、万が一Google アカウントが流出した際も、IPアドレスなどで制御を行うことができ、セーフティーネットを張ることができます。

最後に

IAP を使用した VM への接続は、今回のような GCE 以外にも、GKE への接続や GAE への接続など、様々な使い方ができる機能なので今後もお世話になりそうです。
私と同じような状況で迷っている方に、この記事が参考になりましたら幸いです。
最後までご覧いただきありがとうございました。

5
1
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
5
1