LoginSignup
8
1

More than 1 year has passed since last update.

こんにちは、京セラコミュニケーションシステムの谷本(@kccs_tetsuya-tanimoto)です。

今までプロジェクトレベルより下のリソースしか触ったことが無かったのですが、たまたまGoogle Cloudの組織設定含めて上のほうのレイヤーから設定する機会があったので、いちばん印象に残ったリソース設定について備忘録ついでに残しておこうと思います(;´∀`)

一部コンテンツは、各サービスのID発行ならびに、有償コンテンツを含んでいます。
また、Google Cloudの機能を利用した場合は、利用料が発生します。

はじめに

BeyondCorpやらVPC Service Controlsやらを触ってみた感想ですが、「堀に囲まれた城やん」って感じでした。

BeyondCorpはゼロトラストを実現するための機能群、VPC Service Controlsは指定したプロジェクト内のGoogle CloudサービスAPIを保護するためのサービスです。

今回はBeyondCorpによってアクセス元を制限しつつ、更にVPC Service Controlsによって特定プロジェクト内のデータへのアクセスを制限するプロジェクト構成について記載します。

ユースケース

  • 重要データなど(個人情報とか)を含んだデータベース(BigQueryとかCloudSQL)や、データベースに格納されるデータに対するETL/ELT処理を実行するリソース(GCEとかGCS)を特定のメンバーにしか見せたくない!

  • 重要な情報なので、社外からは絶対にアクセスさせたくない!

可能な限りデータへのアクセス元を制限し、かつ重要データには触れられるメンバーも制限したいみたいな場合を想定してます。

使用するサービス&前提条件

【前提条件】

  • BeyondCorpもVPC Service Controlsも組織(Organization)に対して設定します。
  • プロジェクトやVPCは作成済み、制御したいリソース設定も完了しているものとしてます。

【ここで扱うサービス】

  • Access Context Manager
  • Googleグループ
  • BeyondCorp Enterprise
  • VPC Service Controls

システム構成のイメージ

  • BeyondCorpによって、許可されたアクセス元以外からのアクセスをブロック
  • VPC Service Controlsによって、BeyondCorpで許可されたアクセス元の中でも、特別なユーザーのみアクセス可能なプロジェクトを設定
0048-01.png

設定の流れ

  1. Access Context Managerにて"アクセスレベル"を定義する
  2. BeyoneCorp Enterpriseにて組織に対するアクセス制御を行う
  3. VPC Service Controlsによる「境界(Perimeter)」を作成する
  4. 境界の中に入れたいプロジェクトを選択する
  5. 境界中のリソースに対するアクセスルールを設定する

各リソース設定の関連性としてはこんなイメージです。
0048-03.png

Access Context Managerでアクセスレベルを定義

まず、Access Contect Managerでアクセスレベルを定義します。
このアクセスレベルはBeyondCorpでも使用しますし、VPC Service Controlsでも使用する大事な設定です。

0048-02.png

今回はアクセスレベルとして、IPアドレスでの制限をかけます。
①一般ユーザー用、②重要情報にアクセスできるユーザー用で2つのアクセスレベルを作成します。
二つのアクセスレベルを作成していますが、Members側にはAdminsのアクセス元も含んでいます。

0048-02-2.png

Googleグループの作成

アクセスを許可したいユーザーを含んだGoogleグループを作成します。

0048-08.png

Google Workspaceを利用している場合は、新規ユーザー登録時の対象グループ設定をしておくと、アカウント登録のたびに自動でグループに入れてくれるので運用が楽になります。

ここでは組織に対してアクセス可能なすべてのユーザーを含んだGoogleグループが設定されている前提で進めます。

BeyondCorpにて組織に対してアクセス制御を設定

設定自体はシンプルなのですが、なぜか組織を選択した状態でBeyondCorp Enterpriseのメニューをクリックすると悲しみのメッセージが出てきます(わたしだけ?)

0048-04-1.png

適当なプロジェクトを選択すると、今度は組織を選択しろと。。

0048-04-2.png

改めて組織を選択するとやっと設定画面にたどり着けました。

0048-04-3.png

アクセス管理のルールを追加します。
Googleグループとアクセスレベルを選択します。

これによってアクセスレベルに定義されたIPアドレスからのアクセスと、Googleグループに登録されたメンバーからのアクセスが可能になります。

0048-04-4.png

VPC Service Cotrolsで境界を作成する

組織に対するアクセスが制限されたところで、次は保護したいプロジェクトに対する制限を行います。

対象プロジェクトやアクセスレベルを設定し、境界(Perimeter)を作成します。
最初に設定する際は、”構成タイプ”をドライランにしておくとサービスへの影響確認がしやすくなります。

0048-04-4.png

Projectsで保護したいリソースを含むプロジェクトを選択し、Restricted Servicesで保護対象のGoogle Cloudリソースを選択します。

内向きポリシーと外向きポリシー

境界へのアクセス制御は内向き/外向きポリシーを設定することで細やかな制御が可能になります。

今回はCloud Storageに対して、特別なユーザーからのアクセス許可を内向きポリシーとして設定します。

0048-06.png

動作確認

試しに一般ユーザー用アクセスレベルのIPアドレスから境界の中にあるCloud Storageのバケットにアクセスをしてみましたが、何も表示されませんでした。ちゃんとコントロールされてそうです。

0048-07-1.png

境界内へのアクセスを許可しているアクセスレベルからCloud Storageにアクセスした場合はちゃんと表示されます。

0048-07-2.png

終わりに

アクセス元の制限はどんなプロジェクトでも結構話題になることが多いと思います。Google Cloudのセキュリティ機能を活用するとかなり簡単に安全なシステム環境を整えることができるので、是非ご活用いただけたらと思います。

また、今回使用したBeyondCorp Enterpriseはお金出せばデバイス単位(MDM)での制限とかいろいろできることが増えます。

なんかのプロジェクトや弊社のセロトラスト施策とかでやる機会がないかなーってちょっと期待しつつ、新しい年を迎えたいと思います。

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