Google Cloud では、各サービスを利用するためユーザに対してロール(権限)を付与する必要があります。
Googleには「事前定義ロール」が用意されており、事前定義ロールはGCPの各サービスを利用する為の権限がまとまっております。例えばGCPサービスの「DataStore」を利用する場合は「Cloud Datastore 閲覧者」「Cloud Datastore オーナー」など、ユーザのレベルに応じた事前定義ロールが用意されています。
しかし、事前定義ロールの数は非常に多いため、暫定的に過剰な権限を持つ事前定義ロールをユーザに付与しておく場合も少なくありません。
過剰な権限を持つ事前定義ロールを付与してしまうと、そのユーザが誤った操作をした時に予期しないデータの更新などが行われてしまう危険性があります。
弊社にご相談頂いたお客様も、ユーザに対して過剰な事前定義ロールを付与しており、セキュリティ面から権限を最低限に絞りたいという課題を抱えていました。
今回の記事では、お客様にご提案した事前定義ロールの管理方法などについてご紹介いたします。
【お客様の抱えていた課題】
お客様はユーザに割り当てたロールに対して、以下のような課題を抱えていました。
- 利用したい Google Cloud サービスに対して、ユーザに割り当てた事前定義ロールの権限が過剰だった。
- ユーザ1人1人に対してロールを割り当てているが、ユーザをグループ分けして、グループ単位でロールを割り当てたい。
上記の様なご相談があり、実際に利用したいGCPサービスに必要なロール、グループ単位でロールを割り当てる方法を調査しました。
【実施概要】
主に実施した内容は以下となります。
- お客様が利用したい Google Cloud サービスに必要な権限を調査
- グループアドレスにロールを割り当てる方法をご提案
- 独自の権限をまとめたカスタムロールを作成
- カスタムロールを作成するための補助ツールの作成
1. お客様が利用したいGCPサービスに、必要なロールを調査
お客様が利用したい Google Cloud サービスに対して、必要な権限などを調査し、最適なロールを作成するための資料をまとめて提出させて頂きました。
2. グループアドレスにロールを割り当てる方法をご提案
お客様はユーザーに対してロールを割り当てていた為、グループに対してロールを割り当てることをご提案し、その方法をお伝えしました。
<グループアドレスとカスタムロールの関連図>
Google Cloud ではGoogle Workspace上で作成したグループに対してロールを割り当てることが可能となっており、Google公式からもグループに対してロールを割り当てる方法がベストプラクティスであるとアナウンスされています。
グループに対してロールを割り当てておくことで、ユーザ一人一人にロールを割り当てる必要がなくなり管理が容易になります。新入社員や退職者が出た場合でも、グループに追加したり削除することで、必要なロールをユーザに割り当てることが可能となります。
3. 独自の権限をまとめたカスタムロールを作成
Google Cloud では、独自の権限をまとめたカスタムロールを作成することができます。そのため、必要な権限をまとめたカスタムロールをグループに割り当てることで、グループ内のユーザは対象のGCPサービスを利用することができます。
そこで弊社では、お客様が利用したいGCPサービスに対して必要な権限をまとめたカスタムロールを作成して、ご提出させて頂きました。
4. カスタムロールを作成するための補助ツールを作成
Google Cloud の画面からカスタムロールを作成する際は、必要な権限に一つ一つチェックを付ける必要があり、非常に手間となります。
そこでGoogle独自のCLI※である「Google Cloud CLI」を利用し、ファイルに必要な権限をまとめて読み込ませることで、簡単にカスタムロールを作成する事ができます。その際に、権限をまとめたファイルを作成するためのツールを、Googleのスプレッドシートで作成しお客様にご提供いたしました。
【対応の結果】
新規にカスタムロールを作成して、作成したカスタムロールをグループに割り当てることで、必要最低限の権限にすることができました。また、グループのメンバーを編集することによりメンテナンス面でも改善を行い、お客様から「格段に使いやすくなった」とご満足いただけました。
このように弊社では、 Google Cloud やGoogleサービスに関する課題解決をお手伝いさせて頂いております。もし、何かお困りごとがあればお気軽にご相談下さい。
※CLIとは、コンピュータやソフトウェアがユーザに情報を提示したり操作を受け付けたりする方法(UI:ユーザーインターフェース)の一つで、すべてのやり取りを文字(コマンド)によって行う方式のことです。コマンドプロンプトやPowerShellが、CLIに該当します。
上記の記事に関してご質問ございましたら、お問い合わせください。