ほぼ無料でGCPのフォルダリソースにIAMポリシーを紐付ける
概要
AWSやるぞって資格までとったけど、最近は仕事も変わりもっぱらGCPさわってます
GCPの権限(IAM)周りの勉強も踏まえて自分で色々設定してみる!
こんな感じの物を作るのだ!
ほぼ無料でと書きましたが独自ドメイン(数円〜数十円)の料金がかかります
Cloud Identityの設定
フォルダ使うためには組織が必要
組織使うためにはGSuiteかCloud Identityが必要
GSuiteは最低でも1ユーザー/月680円するけど Cloud Identityは無料。無料!!こっち使おう
GCPコンソールにて「IAMと管理」->「IDと組織」->「お申し込み」を押下して ぽちぽちと適当にアカウント情報を入れていく
ドメインの所有権の確認
途中で「ドメインの所有権の確認」というステップがある ドメインが自分のものであることを証明する必要がある
独自ドメイン購入
とりあえずお名前.comで適当にドメインを買う
(今回関係ないけどWhois代行設定は初回購入時無料なので設定が吉)
無料サーバーの準備
今回は「ドメインの所有権の確認」の方法としてhtmlのmetaタグを用いた認証を行う。そのために、自身のドメインにhttpでアクセスできる環境が必要になる。
無料で独自ドメイン対応したwebサーバー構築調べたら XFREEなるサーバーが使えそうだったのでこれで行く。無料プランを申し込み。
独自ドメインの向き先を自身のサーバーに向ける
「お名前.com」のネームサーバーでAレコードを設定して 購入したドメインの向き先ipを無料で購入したサーバーに設定する必要がある。
まずはXFREE管理パネルのドメイン設定追加画面に行き
「Aレコード認証」のコンテンツIPをコピーする。
コピーしたIPアドレスを、お名前.comのDNS設定でAレコードとして設定する。
以下コマンドのexample.comを自身のドメインに変更して実行
設定したIPアドレスが表示されればOK!
dig a example.com +short
(DNS設定が反映されるまでにそこそこ時間がかかるかも)
(お名前.comのNAMEサーバーが0x.dnsv.jpになっていることも要確認。
違うサービスのNAMEサーバー使ってる場合はそちらでAレコード設定しなきゃ)
上記反映された状態でXFREEの管理パネルのドメイン追加画面に行き 「ドメイン設定を追加する(確認)」ボタンを押下すると購入したドメイン追加される。
ドメイン所有権確認
XFREE管理パネルでwebFTPボタンを探してindex.htmlをブラウザで編集。
Cloud Identity設定画面で表示されたmetaタグをコピーして保存
Cloud Identity設定画面に戻ると認証成功するはず!
GCPフォルダを作成
組織->フォルダ->プロジェクトを作成
# 組織ID確認 gcloud organizations list # 組織IDを指定してフォルダ作成 gcloud alpha resource-manager folders create --display-name=[folder_name] --organization=[organization_id] # フォルダID確認 gcloud alpha resource-manager folders list --organization=[organization_id] # フォルダID指定してプロジェクト作成 gcloud projects create --folder=1048782978666 [project_name]
IAMポリシーをフォルダーに紐付け
個別アカウントではなく、エンジニアとかマーケターとかざっくりした区分けをGoogle Groupで作成して、それに役割を与える。 あとはそれに当てはまる個別アカウントを対象グループに入れるようにしたい。
検証のために、Cloud Identityで適当なアカウント「aaa.bbb@example.com」を作成してGCPコンソールにログインする。 なんの役割も与えてないのでGCEの画面とか行くと権限エラーになる
Google Groupの作成
Google Groupを作成。
作成した適当なアカウントを作成したグループに追加。
Google Groupに対して役割を付与し、フォルダーにIAMポリシーを紐付け
# 作成したGoogle Groupにフォルダーレベルのowner役割を付与 # 例)[google_group_email]:engineer@example.com gcloud resource-manager folders add-iam-policy-binding [folder_id] --member group:[google_group_email] --role roles/owner # フォルダリソースに紐づくIAMポリシーの確認 gcloud resource-manager folders get-iam-policy [folder_id]
再度適当なアカウントでGCPコンソールを見るとプロジェクトにアクセスできるようになってる!!
所感
フォルダを使った運用イメージがつかなかったので自分で実際に手を動かしてみた。
フォルダを適切に区切れば、IAMポリシーの設計も素敵にできそうな空気がした