Мы настроили прокси-сервер Cloud SQL в качестве контейнера вспомогательной машины для одного из наших приложений Java / Tomcat.
Вот как мы настраиваем удостоверение рабочей нагрузки, чтобы наше приложение могло подключаться к облаку SQL через облако sql прокси:
Создал учетную запись службы IAM в облаке и дал ее SQL Разрешение клиента:
Привязка политики установки выглядит следующим образом:
gcloud iam service-accounts add-iam-policy-binding \
--role roles/iam.workloadIdentityUser \
--member "serviceAccount:[PROJECT_ID].svc.id.goog[default/default]" \
[GSA_NAME]@[PROJECT_ID].iam.gserviceaccount.com ```
Добавлена аннотация к учетной записи службы GKE:
kubectl annotate serviceaccount \
--namespace [K8S_NAMESPACE] \
[KSA_NAME] \
iam.gke.io/gcp-service-account=[GSA_NAME]@[PROJECT_ID].iam.gserviceaccount.com
Но когда мы проверяем это, используя:
kubectl run --rm -it \
--generator=run-pod/v1 \
--image google/cloud-sdk:slim \
--serviceaccount [KSA_NAME] \
--namespace [K8S_NAMESPACE] \
workload-identity-test
Несмотря на то, что все выполняется правильно, как объяснено на этой странице все равно приводит к:
Error 403: The client is not authorized to make this request., notAuthorized