ユースカジノ twitter Service Controlsを設計/実装する
- Google Cloud
- セキュリティ
- 運⽤管理
- ネットワーク
- エンジニア
投稿日:
はじめに
こんにちは。クラウドアーキテクトの山下です。今回はユースカジノ twitter ServiceControlsを実際に設定していきます。
ユースカジノ twitter Service ControlsはGoogleCloud内のプロジェクト毎のAPIとユースカジノ twitterを境界を定義してアクセス制御をL7ネットワークで実現できるサービスです。境界を定義して保護したいプロジェクト、APIとユースカジノ twitterを登録していくもので非常にシンプルな構成になります。
しかし、境界に含まれていないものはコンソールを操作するユーザーであってもリソースを操作するユースカジノ twitterアカウントであっても一切通信が行えなくなります。そのため、通信が成立するために境界に穴を開けていきます。具体的な設定方法についてこの記事で触れていきます。

ユースカジノ twitter設計
まずはプロジェクトのAPI, ユースカジノ twitterの通信経路、連携するサービスを特定する必要があります。どの通信を許可して、どの通信は許可されないのかを決める必要があります。この設計内容によって通信制御内容が変わるためです。
考えるべき観点
以下の観点でユースカジノ twitterを整理していきます。構成図も設けるとよりイメージがしやすいので、機能要件/非機能要件を満たす設計を行った最後にこちらを行うとより手戻りが少なくなりおすすめです。
また、観点としてはGoogleCloudのプロジェクト外部かどうかになります。プロジェクト外部なのでマネジメントコンソールもCLIも対象となるのがポイントです。
誰が? | どこから? | どこに? | 何をする? |
---|---|---|---|
管理者 | 自社端末 | GCPコンソール | プロジェクト内の リソース管理 |
Cloud Functions |
プロジェクトBの ユースカジノ twitterアカウント |
プロジェクトAの GCSバケット |
GCSバケットに オブジェクトを アップロードする |
設定方法
前提
- GoogleCloudの組織が必要となります。組織を構成した上でこちらを設定していきます。
- 権限も組織スコープで実施する必要があるため、組織管理者が実施するのか各プロジェクト担当者に最低限の権限を解放して設定させるのかは規模や運用方針に依ります。
- また、特定のIPアドレスや地域からのアクセスを指定したい場合はAccessContextManagerでの許可設定を予め作成します。
実際の設定
コンソールにて組織を選択した上でユースカジノ twitter Service Controlsと検索しサービスを選択する。

境界を作成する
ユースカジノ twitter Service Controlsはドライランモードで「新しい境界」をクリックします。
※ポリシーを分けて定義することも可能ですが、1組織で統制をかける場合はdefaultをそのまま指定でも問題ないです

境界の種別を選択する
境界名を入力し、境界のタイプで標準境界(デフォルト)を選択します。
境界ブリッジは特定のユースカジノ twitter間の通信制御で利用できるものですが、基本的には標準境界の方がより細かいアクセス制御が行えるので推奨です。

境界の範囲を定義する
ADD RESOURCESで境界に含める対象を選択します。
対象リソースはプロジェクトとユースカジノ twitterを選択する事ができますが、以下の2点考慮事項があります。
考慮事項
- プロジェクトは複数を指定する事ができる
境界にプロジェクトを複数含める事が出来るため、複数プロジェクトで成立するユースカジノ twitterを構成している場合は複数指定もありです。ただし、後述の上り/下りポリシーで通信を制限する事も出来るため、より厳密に定義したい場合は1プロジェクトのみを境界に入れるようにします。 - 設定できるプロジェクトとユースカジノ twitterの関係
プロジェクトAにユースカジノ twitter-Aが存在し境界に入れたい場合、保護するリソースに両方を登録する必要があるように一見見えますが、その必要はありません。プロジェクトを保護対象に指定した時点でそのプロジェクトが持つユースカジノ twitterも境界に含まれます。ユースカジノ twitter NETWORKを使うポイントは別プロジェクト全体を境界には入れたくないが、別プロジェクトの特定のユースカジノ twitterだけ境界に入れたい場合に利用します。

境界で公開/非公開にするAPIを選択する
境界で保護するAPIを選択します。外部へ無制限に公開するAPIがない限りはすべてのユースカジノ twitterを追加をクリックします。こちらも後述の上り/下りポリシーでAPIの特定の操作のみ外部公開する設定を行えるので、基本的には全てのユースカジノ twitterを含める事を推奨します。

ユースカジノ twitter-API間の通信制御方法を選択する
ユースカジノ twitterから保護したAPIにアクセスする際の許可/拒否を設定します。基本的にはすべてのサービスまたはサービスなしを選択します。
ここまでと同様に特定のAPIを外部に公開したい場合やアクセス制限したくない場合にこちらの設定を行います。ひとつ前の設定で外部に対してAPIが公開されなくなったため、ユースカジノ twitterからAPIにアクセスするにはパブリック通信経由ではアクセスできず、限定公開を通じてしかアクセスできません。
また、ユースカジノ twitterから限定公開を通じてアクセスする事を許可するのか、許可しないのか、特定のAPIにだけ限定公開でのアクセスを強制化させるのかを選択できます。一切ユースカジノ twitterを用いずサーバレスのみやPaaSのみを利用する場合はサービスなしを選択すると良いでしょう。

AccessContextManagerのアクセス制限を適用する
境界の外からのユースカジノ twitter(Ingress)についてACMで許可されたユースカジノ twitter内容が適用されます。次の上り(内向き)ポリシーでもIngressユースカジノ twitterの許可設定を行う事も出来ますが、ここでACMが設定されている時点でACMの許可内容を満たすものであればユースカジノ twitterが無制限に行えます。
例えば、ACMで管理者の端末やVPNのIPアドレスを登録しておけば、追加設定なしにプロジェクトにそのIPアドレスからであればアクセスできます。GoogleCloud外部からのユースカジノ twitterでIPアドレスベースでのユースカジノ twitterを許可したい場合はこの設定を行いましょう。

上りポリシー(Ingress)を設定する
こちらも境界の外からユースカジノ twitterを定義する項目になります。ACMとは異なり、より細かく特定のPrincipal(アクセス元が誰か)を指定する事が出来ます。
またこのPrincipalがどのAPIのどの操作を行えるかをここで設定出来ます。
ユースカジノ twitter Service Controlsはホワイトリスト形式のため、APIに対しての許可設定をここで入れていきます。

Principalに指定出来るのはGoogleアカウント/グループとユースカジノ twitter Accountになります。
任意のIDを選択すると境界がないのと同じ状態になります。特定のゴールデンイメージやコンテナイメージ、パッケージをプロジェクト間で共有したい場合など不特定多数かつ、今後利用が拡大する事が予想されるAPIのみに許可を与える場合に有用です。
任意のユーザーアカウント/ユースカジノ twitterアカウントはそれぞれのアカウントへ無制限の許可を与えます。マネジメントコンソールにアクセスするユーザーは制限はしない場合や、ユースカジノ twitterアカウントにだけ特定のAPIの閲覧操作だけを開放する場合に用います。
IDとグループを選択を指定する場合は特定のGoogleアカウント/グループ、ユースカジノ twitter Accountに限定出来ます。より細かな制御を行う場合はこちらを設定します。
一方、ACMでIPアドレスが指定されていてそのIPアドレスからアクセスされる場合は、ここで明示的に設定しなくてもアクセスが許可されています。マネジメントコンソールやプロジェクトのAPIへのアクセス許可設定は別途不用です。

そして接続するプロジェクトとプロジェクトのAPI、そのAPIに対する操作権限をここで設定します。APIの全操作権限を渡す事も全APIへのアクセス権を渡す事も可能です。よりセキュアにするのであれば、開放するAPIと操作を限定するのが望ましいです。

下りポリシー(Egress)を設定する
最後に境界の外へのユースカジノ twitterを定義します。こちらもホワイトリストなので外部へのユースカジノ twitterがある場合は許可設定を定義する必要があります。
Egressのユースカジノ twitterはIngress同様にどのPrincipal(誰)がどのAPIのどの操作が行えるかを定義できます。ただ、どのAPIとどの操作かというのはあくまでユースカジノ twitter先がGoogle Cloudである事を想定したものになります。Google Cloudでない場合は外部のリソースを指定する必要があります。

アクセス元のPrincipal(ID)をIngressと同様に設定出来ます。内容は変わらず、Googleアカウント/グループ、ユースカジノ twitterAccountの指定になります。
一点考慮すべきなのはこれらは境界の中に存在するものという事です。境界内のユーザーアカウントが外部に対して何か行うというケースはあまりなく殆どユースカジノ twitter Aacountがこちらの対象になる項目です。

境界外部がGoogle Cloudの場合は許可するAPIと操作をこちらで定義します。境界から境界に対してユースカジノ twitterする時はそれぞれの許可設定でIngress/Egressを定義する必要があります。

接続先がGoogle Cloudではない場合は以下のように外部接続先を指定出来ます。AWSとAzureのオブジェクトストレージのバケット/コンテナが現在サポートされています。

まとめ
AWS/Azureのユースカジノ twitterエンドポイントに代わる、かつ、それらよりもよりAPIに特化してさらにアクセス制限を行えるサービスです。
しかし、そのシンプルさと全体に適用できる運用性とは裏腹にIngress/Egressのルール設定を適切に行わないとユースカジノ twitterが全く行えない状態になりかねません。
境界をどこまでに設定するのか、どのAPIを制限するのか、境界外の登場人物(Principal)を列挙し何をするのか、これらを設計して初めて構成が可能となります。
一方で、気づかない見落としていたユースカジノ twitter内容も中にはあります。これを防ぐためにドライランモードを利用する事が出来ます。ドライランモードとデバッグ方法についてはまた別の回で紹介したいと思います。
次回予告
次回は ユースカジノ twitter Service Controls をデバック / 許可内容の確認についてご紹介します。