Open4
GCP
IAM bindingの環境依存の権限は常時trueのconditionつけておくとコード上でもコンソールで見た時も環境限定権限だって分かりやすくていい感じ
condition付けないと後から作ったbindingで上書きされるのでcondition無しのbindingは必ず一か所にまとめる
modules/iam/main.tf
resource "google_project_iam_binding" "default" {
for_each = {
"roles/logging.viewer" = [
"group:fuga@example.com",
]
}
project = "some_project"
role = each.key
members = each.value
}
stg/permanent.tf
resource "google_project_iam_binding" "stg_only" {
for_each = {
"roles/logging.viewer" = [
"group:hoge@example.com",
]
}
project = "some_project"
role = each.key
members = each.value
condition {
expression = "request.time > timestamp('2021-01-01T00:00:00Z')"
description = "STGのみ常時付与権限"
title = "stg only"
}
}
Secret Managerのベストプラクティスはシークレットを都度取れってなってるが、functionsなどのサーバレスではマウントするか環境変数に埋め込むのが推奨されてる
cloud runのtraffic tagは合計で46文字以内に収めないと駄目
cloud runでタグ付きURL発行した場合、URLをカスタムオーディエンスに付与する必要がある
github actions使うならoutputsでurl拾えるからそれを使うと良い