En este documento se describe cómo autenticarse en Secret Manager mediante programación. La forma de autenticarte en Secret Manager depende de la interfaz que uses para acceder a la API y del entorno en el que se ejecute tu código.
Para obtener información sobre cómo acceder a la API Secret Manager, consulta Acceder a la API Secret Manager.Para obtener más información sobre la autenticación, consulta los métodos de autenticación. Google Cloud
Acceso a la API
Secret Manager admite el acceso programático. Puedes acceder a la API de las siguientes formas:
Bibliotecas de cliente
Las bibliotecas de cliente de Secret Manager proporcionan compatibilidad con lenguajes de alto nivel para autenticarte en Secret Manager de forma programática. Para autenticar las llamadas a las APIs de Google Cloud , las bibliotecas de cliente admiten las credenciales predeterminadas de la aplicación (ADC). Las bibliotecas buscan credenciales en un conjunto de ubicaciones definidas y las usan para autenticar las solicitudes a la API. Con ADC, puede poner credenciales a disposición de su aplicación en diversos entornos, como el desarrollo local o la producción, sin necesidad de modificar el código de la aplicación.
Google Cloud CLI
Cuando usas la CLI de gcloud para acceder a Secret Manager, inicias sesión en la CLI de gcloud con una cuenta de usuario, que proporciona las credenciales que usan los comandos de la CLI de gcloud.
Si las políticas de seguridad de tu organización impiden que las cuentas de usuario tengan los permisos necesarios, puedes usar la suplantación de identidad de cuentas de servicio.
Para obtener más información, consulta Autenticarse para usar la CLI de gcloud. Para obtener más información sobre cómo usar la CLI de gcloud con Secret Manager, consulta las páginas de referencia de la CLI de gcloud.
REST
Puedes autenticarte en la API Secret Manager con tus credenciales de gcloud CLI o con las credenciales predeterminadas de la aplicación. Para obtener más información sobre la autenticación de solicitudes REST, consulta el artículo Autenticación para usar REST. Para obtener información sobre los tipos de credenciales, consulta Credenciales de la CLI de gcloud y credenciales de ADC.
Configurar la autenticación para Secret Manager
La forma de configurar la autenticación depende del entorno en el que se ejecute el código.
Estas son las opciones más habituales para configurar la autenticación. Para obtener más opciones e información sobre la autenticación, consulta Métodos de autenticación.
En un entorno de desarrollo local
Puedes configurar las credenciales de un entorno de desarrollo local de las siguientes formas:
- Credenciales de usuario para bibliotecas de cliente o herramientas de terceros
- Credenciales de usuario para solicitudes REST desde la línea de comandos
- Suplantación de cuentas de servicio
Bibliotecas de cliente o herramientas de terceros
Configura las credenciales predeterminadas de la aplicación (ADC) en tu entorno local:
-
Install the Google Cloud CLI. After installation, initialize the Google Cloud CLI by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Aparecerá una pantalla de inicio de sesión. Después de iniciar sesión, tus credenciales se almacenan en el archivo de credenciales local que usa ADC.
Para obtener más información sobre cómo trabajar con ADC en un entorno local, consulta el artículo Configurar ADC en un entorno de desarrollo local.
Solicitudes REST desde la línea de comandos
Cuando haces una solicitud REST desde la línea de comandos, puedes usar tus credenciales de la CLI de gcloud incluyendo gcloud auth print-access-token
como parte del comando que envía la solicitud.
En el siguiente ejemplo se enumeran las cuentas de servicio del proyecto especificado. Puedes usar el mismo patrón para cualquier solicitud REST.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto Google Cloud .
Para enviar tu solicitud, despliega una de estas opciones:
Para obtener más información sobre la autenticación mediante REST y gRPC, consulta el artículo Autenticarse para usar REST. Para obtener información sobre la diferencia entre tus credenciales de ADC locales y tus credenciales de la CLI de gcloud, consulta Configuración de la autenticación de la CLI de gcloud y configuración de ADC.
Suplantación de identidad de cuentas de servicio
En la mayoría de los casos, puedes usar tus credenciales de usuario para autenticarte desde un entorno de desarrollo local. Si no es posible o necesitas probar los permisos asignados a una cuenta de servicio, puedes usar la suplantación de identidad de la cuenta de servicio. Debes tener el permiso iam.serviceAccounts.getAccessToken
, que está incluido en el rol de gestión de identidades y accesos Creador de tokens de cuenta de servicio (roles/iam.serviceAccountTokenCreator
).
Puedes configurar gcloud CLI para que use la suplantación de identidad de la cuenta de servicio con el comando gcloud config set
:
gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
En algunos idiomas, puedes usar la suplantación de identidad de la cuenta de servicio para crear un archivo ADC local
que puedan usar las bibliotecas de cliente. Este enfoque solo se admite en las bibliotecas de cliente de Go, Java, Node.js y Python. No se admite en otros lenguajes.
Para configurar un archivo ADC local con la suplantación de identidad de una cuenta de servicio, usa la marca --impersonate-service-account
con el comando gcloud auth application-default login
:
gcloud auth application-default login --impersonate-service-account=SERVICE_ACCT_EMAIL
Para obtener más información sobre la suplantación de identidad de cuentas de servicio, consulta el artículo Usar la suplantación de identidad de cuentas de servicio.
En Google Cloud
Para autenticar una carga de trabajo que se ejecuta en Google Cloud, debes usar las credenciales de la cuenta de servicio asociada al recurso de computación en el que se ejecuta tu código, como una instancia de máquina virtual (VM) de Compute Engine. Este enfoque es el método de autenticación preferido para el código que se ejecuta en un recurso informático Google Cloud .
En la mayoría de los servicios, debes asociar la cuenta de servicio al crear el recurso que ejecutará tu código. No puedes añadir ni sustituir la cuenta de servicio más adelante. Compute Engine es una excepción, ya que te permite adjuntar una cuenta de servicio a una instancia de VM en cualquier momento.
Usa la CLI de gcloud para crear una cuenta de servicio y adjuntarla a tu recurso:
-
Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:
gcloud init
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Set up authentication:
-
Create the service account:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Replace
SERVICE_ACCOUNT_NAME
with a name for the service account. -
To provide access to your project and your resources, grant a role to the service account:
gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service accountPROJECT_ID
: the project ID where you created the service accountROLE
: the role to grant
- To grant another role to the service account, run the command as you did in the previous step.
-
Grant the required role to the principal that will attach the service account to other resources.
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service accountPROJECT_ID
: the project ID where you created the service accountUSER_EMAIL
: the email address for a Google Account
-
-
Crea el recurso que ejecutará tu código y asocia la cuenta de servicio a ese recurso. Por ejemplo, si usas Compute Engine:
Create a Compute Engine instance. Configure the instance as follows:-
Sustituye
INSTANCE_NAME
por el nombre de instancia que prefieras. -
Define la marca
--zone
en la zona en la que quieras crear la instancia. -
Define la marca
--service-account
en la dirección de correo de la cuenta de servicio que has creado.
gcloud compute instances create INSTANCE_NAME --zone=ZONE --service-account=SERVICE_ACCOUNT_EMAIL
-
Sustituye
Para obtener más información sobre cómo autenticarte en las APIs de Google, consulta la sección Métodos de autenticación.
On-premise o en otro proveedor de servicios en la nube
El método preferido para configurar la autenticación desde fuera de Google Cloud es usar la federación de identidades de cargas de trabajo. Para obtener más información, consulta el artículo Configurar ADC para un entorno local u otro proveedor de servicios en la nube de la documentación sobre autenticación.
Control de acceso de Secret Manager
Una vez que te hayas autenticado en Secret Manager, debes tener autorización para acceder a los Google Cloud recursos. Secret Manager usa Gestión de Identidades y Accesos (IAM) para la autorización.
Para obtener más información sobre los roles de Secret Manager, consulta Control de acceso con gestión de identidades y accesos. Para obtener más información sobre la gestión de identidades y accesos y la autorización, consulta la descripción general de la gestión de identidades y accesos.
Siguientes pasos
- Consulta más información sobre cómo acceder a la API Secret Manager.
- Consulta información sobre los Google Cloud métodos de autenticación.
- Consulta una lista de casos prácticos de autenticación.