弊社では Google Workspace を立ち上げた場合は Azure AD を IdP とした SSO 設定を行うルールになっているのですが、今回あらたに GWS を立ち上げた際に Azure AD と接続するために必要な Credential であるサービスアカウントキーの発行ができなくなり、情シスの方が首をひねっていたので、代わりに対応したときのメモです。
大前提: GCP のデフォルトのセキュリティポリシーが 2024/5 に大きく変更されている
デフォルトで保護されている組織のポリシーが、2024 年 5 月 3 日以降に作成されたすべての組織に適用されます。2024 年 2 月から 2024 年 4 月の間に作成された組織の一部には、これらのデフォルト ポリシーの適用が設定されている場合もあります。組織に適用されている組織のポリシーを表示するには、組織のポリシーを表示するをご覧ください。
この中の先頭バッターとして サービス アカウント キー作成を無効にする(constraints/iam.disableServiceAccountKeyCreation)
が記述されていますが、これが理由です。5月以降に GWS/GCP を立ち上げた方はネットの記事ではなく公式ドキュメントを読むのが良いです。
手順
基本的には上記のリンクに記載の通りの手順で進められますが、CLI を使わない方法もあるので、書いていこうと思います。
1. 対象の GWS アカウントを発行してもらう
対象の Organization 管理者に依頼しました。
2. アカウントに対して Organization に対する管理権限を付与してもらう
これも対象の Organization 管理者に依頼します。
- GCP にアクセスし、リソースは対象 Organization を選択したうえで、ナビゲーションメニューの IAM と管理 → IAM をクリック
- 対象のアカウントの 鉛筆マーク(プリンシパルを編集) をクリック→ 組織の管理者(
roles/resourcemanager.organizationAdmin
) をロールに追加してもらう
3. アカウントに対してポリシー管理者の権限を付与する
2 の手順が済んでいれば、自力で対応できます。
こちらも IAM から 組織ポリシー管理者(roles/orgpolicy.policyAdmin
) をロールに追加
4. disableServiceAccountKeyCreation
をオフにする
- ナビゲーションメニューの IAM と管理 → 組織のポリシー をクリック
- ポリシー一覧が表示されるので、フィルター部分に
disableServiceAccountKeyCreation
と入力 -
Disable service account key creation(
constraints/iam.disableServiceAccountKeyCreation
) を探してクリック - 画面右上の ポリシーを管理 をクリック
- ルール 部分の 適用済み 横にあるゴミ箱アイコンをクリックして一旦削除
- その後 ルールの追加 をクリックし、適用を オフ にして完了ボタンをクリック
- ポリシーを設定 ボタンをクリックして保存
デフォルトでは、この組織ポリシーのソースが「親のポリシーをオーバーライド」になっているため、必要に応じて子のリソースにも実施するか、GCP の使い方によっては「親のポリシーを継承する」に変更しても構いません。
5. 対象のサービスアカウントに対してキーを発行する
操作についてはこれまでと変わりませんが、 上記の操作が完了していれば、対象のアカウントのキーを発行できるようになっています。
6. disableServiceAccountKeyCreation
を再度オンにする
Google のドキュメントの焼き直しになりますが、サービスアカウントキーを前提とした運用はセキュアではない ので、今後の GCP のベストプラクティスに従えるように、改めてサービスアカウントキーの発行を禁止しておきます。
といっても、手順4の逆の操作を行うだけです。
- ルール 部分の 適用済み 横にあるゴミ箱アイコンをクリックして一旦削除
- その後 ルールの追加 をクリックし、適用を オン にして完了ボタンをクリック
- ポリシーを設定 ボタンをクリックして保存
感想
日々の業務では情シス・コーポレートIT的なオペレーションや、インフラ周りの操作はほぼやらないので、GCP のデフォルトポリシーが変わったことを知るいいきっかけになりました。。