‼️
firebaseコンソールから秘密鍵の生成ができなくなっていた問題の解決
現象
原因
2024 年 5 月 3 日以降に作成された組織は自動的なロール付与が無効になっているためでした。
解決策
以下のコマンドの出力から組織idをメモ
gcloud organizations list
オーナー権限がある場合、以下のコマンドを使って自分に Org Policy Admin ロールを付与できます。
gcloud organizations add-iam-policy-binding [組織id] \
--member="user:[オーナーのアカウント]" \
--role="roles/orgpolicy.policyAdmin"
ロールが付与されたかを確認するには、次のコマンドを実行します。
gcloud organizations get-iam-policy [組織id] \
--format="table(bindings.role, bindings.members)" \
--filter="bindings.members:user:[オーナーのアカウント]"
結果が以下のように表示されれば、Org Policy Admin が付与されています。
ROLE MEMBER
roles/orgpolicy.policyAdmin user:[オーナーのアカウント]
現在の「Disable service account key creation」ポリシーの状態を確認
gcloud org-policies describe constraints/iam.disableServiceAccountKeyCreation \
--organization=[組織id]
結果の例
name: organizations/123456789012/policies/constraints/iam.disableServiceAccountKeyCreation
spec:
rules:
- enforce: true
enforce: true となっている場合、このポリシーが有効になっています。
ポリシーを無効化(OFFに設定)
gcloud org-policies reset constraints/iam.disableServiceAccountKeyCreation \
--organization=[組織id]
変更を確認 ポリシーが無効化されたかを再度確認します。
gcloud org-policies describe constraints/iam.disableServiceAccountKeyCreation \
--organization=[組織id]
期待される結果: ポリシーがリセットされており、rules セクションが消えるか、enforce が無効になっています。
改めてfirebaseコンソールから秘密鍵の生成を試すと、エラーなくダウンロードできます。
注意事項
セキュリティリスク:
サービスアカウントのキー作成を許可すると、キーが漏洩した場合に大きなリスクが発生します。必要な変更を行った後は、ポリシーを再び有効化することを検討してください。
元に戻す(ポリシーを再有効化)
gcloud org-policies enable constraints/iam.disableServiceAccountKeyCreation \
--organization=[組織id]
ポリシーが有効化されたかを確認します。
gcloud org-policies describe constraints/iam.disableServiceAccountKeyCreation \
--organization=[組織id]
Discussion