Проблемы с разрешениями секретного менеджера в GCPPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Проблемы с разрешениями секретного менеджера в GCP

Сообщение Anonymous »

В настоящее время я разрабатываю простой код для облачных функций GCP.
Проблема в том, что мне нужно подключиться к секретному менеджеру, чтобы получить ключи API.
В Jupyter этот код у меня отлично работает:

Код: Выделить всё

def access_secret_version(secret_id):
project_id = os.getenv("GCP_PROJECT", "My_Project")
name = f"projects/{project_id}/secrets/{secret_id}/versions/1"
response = secret_client.access_secret_version(request={"name": name})
response = response.payload.data.decode("UTF-8")
return json.loads(response.replace("'", '"'))

ACCESS_TOKEN = access_secret_version("api_key")
Но когда я развертываю его через CI/CD, появляется такая ошибка:

Код: Выделить всё

"message": "Function failed on loading user code. This is likely due to a bug in the user code. Error message:   File \"\", line 995, in exec_module
File \"\", line 488, in _call_with_frames_removed
File \"/workspace/main.py\", line 40, in 
ACCESS_TOKEN = access_secret_version(\"api_key\")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File \"/workspace/main.py\", line 35, in access_secret_version
response = secret_client.access_secret_version(request={\"name\": name})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File \"/layers/google.python.pip/pip/lib/python3.12/site-packages/google/cloud/secretmanager_v1/services/secret_manager_service/client.py\", line 1800, in access_secret_version
response = rpc(
^^^^
File \"/layers/google.python.pip/pip/lib/python3.12/site-packages/google/api_core/gapic_v1/method.py\", line 131, in __call__
return wrapped_func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File \"/layers/google.python.pip/pip/lib/python3.12/site-packages/google/api_core/retry/retry_unary.py\", line 293, in retry_wrapped_func
return retry_target(
^^^^^^^^^^^^^
File \"/layers/google.python.pip/pip/lib/python3.12/site-packages/google/api_core/retry/retry_unary.py\", line 153, in retry_target
_retry_error_helper(
File \"/layers/google.python.pip/pip/lib/python3.12/site-packages/google/api_core/retry/retry_base.py\", line 212, in _retry_error_helper
raise final_exc from source_exc
File \"/layers/google.python.pip/pip/lib/python3.12/site-packages/google/api_core/retry/retry_unary.py\", line 144, in retry_target
result = target()
^^^^^^^^
File \"/layers/google.python.pip/pip/lib/python3.12/site-packages/google/api_core/timeout.py\", line 120, in func_with_timeout
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File \"/layers/google.python.pip/pip/lib/python3.12/site-packages/google/api_core/grpc_helpers.py\", line 78, in error_remapped_callable
raise exceptions.from_grpc_error(exc) from exc
google.api_core.exceptions.PermissionDenied: 403 Permission 'secretmanager.versions.access' denied for resource 'projects/project/secrets/api_key/versions/latest' (or it may not exist).. Please visit https://cloud.google.com/functions/docs/troubleshooting for in-depth troubleshooting documentation."
Мой пользователь и служба учетных записей имеют одинаковые роли, и я уже предоставил администратору службы учетных записей доступ к менеджеру секретов, секретной версии и т. д.
Я также уже проверил, что секретный ключ существует в секретном менеджере
Изображение

Кто-нибудь может помочь? у меня возникла проблема или какое разрешение я должен дать службе аккаунта?

Подробнее здесь: https://stackoverflow.com/questions/792 ... ons-in-gcp
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»