GCPコンソールへのアクセス制御を簡単に実現する方法を教えます(Access Context Manager + BeyondCorp Enterprise)

Access Context ManagerとBeyondCorp Enterpriseを設定して、GCP環境へのアクセスを制限する方法をハンズオン形式で解説します。
2023.11.14

概要

どうやって実現するの?

Access Context ManagerBeyondCorp Enterpriseを設定して、GCPコンソールへのアクセスを条件付きで制御していきます。

今回必要なリソースを下記にまとめます。

  • Access Context Manager
  • BeyondCorp Enterprise
  • Google グループ
  • 組織

Access Context Managerとは

Access Context Managerとは、Google Cloud内におけるIAMポリシーでの権限制御に加えて、追加の条件を付加して、さらに詳細に権限を制御することができるサービスになります。

【公式から引用】

Access Context Manager を使用すると、Google Cloud 組織管理者は、Google Cloud のプロジェクトとリソースに対するきめ細かい属性ベースのアクセス制御を定義できます。

BeyondCorp Enterpriseとは

BeyondCorp Enterpriseとは、単一のサービスを示すものではありません。

信頼できるネットワークはなく、すべてのリクエストを信頼しないという想定のもとゼロトラストに基づく原則を採用している枠組みです。

よって、ネットワークが保護されているだけでは十分ではないセキュリティモデルに移行している状況に対して、Google Cloudでもアプローチしていきましょう、というサービスです。  

【公式から引用】

ネットワークが保護されているだけでは十分ではないセキュリティ モデルに移行している今日、企業の最も安全なアセットを確実に保護し、従業員が適切な環境で生産性を高めるようにするには、最新のアプローチが必要です。 BeyondCorp Enterprise は、この新しいアプローチを可能にすることで組織を支援することを目的とした Google のツールであり、ユーザーの情報をデバイスとロケーションのコンテキストに結び付けることで、企業は豊富なアクセス決定を行い、セキュリティ ポリシーを適用できます。

今回の操作内容

今回は、Google Cloud コンソールへのアクセスについて、Google グループを指定し、接続地域(国)を条件に制限をかけていきたいと思います。

例) : 認証権限を持つIAMユーザーでも、EUやUSのアクセスは拒否し、日本からのみアクセスを可能にさせる...etc

基本的に、Access Context Managerではアクセスレベルを定義します。
実際にその内容を適応させるのは、BeyondCorp Enterpriseに含まれるのサービス達になります。

また、Google グループの作成については、別途Cloud Identityが必要になりますので、ご注意ください。(今回はグループの詳細は割愛します)

Access Context Managerを設定する

前提

まず、Access Context Managerを設定する際には組織という追加リソースが必要です。
これは、Cloud Identityと連携されているリソースであり、主にセキュリティ強化プロジェクトの権限制御のために使用します。

組織についての詳細は過去の記事と公式ドキュメントを載せておきます。
組織リソースの作成と管理-公式
Google Cloud:組織作成の基礎-ブログ

アクセスレベルを設定する

ここからが本設定になります。
まずはGoogle Cloud コンソールにログインして、「Access Context Manager」の画面を開いて、設定していきます。

  • Google Cloud コンソールにアクセスします
  • 検索窓にAccess Context Managerと入力し、該当の画面に遷移します。
  • 下記の画像の赤枠を2つ確認して、組織の階層にいるかを確認し(左上赤枠)、アクセスレベルを設定を押下し、進めます

※注意:ここでエラーが出るパターンもありますので、後ほどブログにします

  • 赤枠のアクセスレベルを作成を押下し、条件を入力していきます
    • 画像では既にIPでアクセスレベルを指定する設定が反映されています

指定できる条件

新しいアクセスレベルの画面が開いたら、項目に沿って入力をします

  • タイトル
    • vpn-onlyなどの一意に識別するための可読性のあるものを命名する
  • 複数の条件を指定
    • AND条件では複数の条件の組み合わせ、OR条件ではどれか一つでも当てはまればという指定が可能です
  • 基本モード(無料)と詳細モード(有料)
    • 基本モード:今回のようにコンソール上で単純な条件を指定していきます
    • 詳細モード:CELという言語を使用して細かい条件を記述していきます

今回は、基本モード地域で条件を指定していきます。

  • 地域の+ボタンを押下し、Japanを選択します
    • フィルタでの検索が英語名でのみ可能です
    • リクエストが特定のリージョンから行われたものかどうかを確認して、国を識別します

最後に作成を押下すれば、アクセスレベルの作成は完了です。

次は、BeyondCorp Enterpriseを使用して、実際にアクセス制御を適応していきます。

BeyondCorp Enterpriseを設定する

  • 検索窓からBeyondCorp Enterpriseを入力し、下記画面へ遷移します
    • 赤枠のプロジェクトIDのボタンを選択してください。

  • 赤枠のCLOUDコンソールとAPIへのアクセス管理を入力し、設定画面へ遷移します

  • 赤枠のアクセスを管理を選択し、設定画面へ遷移します

  • 赤枠の追加を選択し、次から実際の設定画面に移ります

  • 該当のGoogle グループを選択します
  • 作成した地域のアクセスレベルを制限するを選択します

作成を押下すると、該当Google グループへの制限が適応されます。
IPアドレスを制限する場合、そのグループに対する全てのアクセスが拒否されてしまうので、設定の際にはお気をつけください。

実際に、IPアドレスを制限した場合に出たトラブルシュートについてもブログにしますので、少々お待ちください。

まとめ

Google Cloud コンソールへのアクセス制御について解説しました。
条件を指定し、それぞれのリソースへ適応させることでGoogle Cloudでのゼロトラストが実現できます。

ただ、仕組みの理解をしていないと思わぬエラーになりかねない操作なので、慎重に設定することをお勧めします。