Administra la autenticación de IAM

En esta página, se muestra cómo preparar tus recursos de AlloyDB para PostgreSQL para permitir la autenticación de bases de datos a través de la administración de identidades y accesos (IAM).

Este método complementa la autenticación de la base de datos a través de roles de usuario estándar de PostgreSQL, que admite cada clúster de AlloyDB. Si habilitas la autenticación basada en IAM en tu clúster, puedes usar los roles de usuario de IAM o PostgreSQL para autenticarte con ese clúster.

De forma predeterminada, una instancia de AlloyDB no tiene habilitada la autenticación basada en IAM. Puedes seguir los pasos para habilitar los accesos de IAM y configurar usuarios de bases de datos separados basados en IAM:

Puedes repetir los últimos pasos tantas veces como sea necesario, cada vez que necesites agregar más usuarios de IAM a tu clúster de AlloyDB.

En el resto de esta página, se explican estos pasos con más detalle.

Habilita o inhabilita la autenticación de IAM

Para habilitar la autenticación de IAM en una instancia, establece la marca alloydb.iam_authentication en esa instancia en on.

Para inhabilitar la autenticación de IAM en una instancia, vuelve a establecer alloydb.iam_authentication en su valor predeterminado de off.

Para obtener más información sobre cómo configurar marcas en instancias de AlloyDB, consulta Configura las marcas de la base de datos de una instancia.

Otorga acceso a una instancia a un usuario o una cuenta de servicio de IAM

Habilitar el acceso autenticado por IAM a un usuario nuevo de la base de datos es un proceso de dos pasos:

  1. Actualiza la configuración de IAM de tu proyecto para otorgar acceso a la base de datos de AlloyDB al usuario o la cuenta de servicio de IAM adecuados.

  2. Crea un usuario de base de datos nuevo en tu clúster y establece el nombre de usuario como la dirección de correo electrónico del usuario o la cuenta de servicio de IAM.

Puedes repetir el segundo paso tantas veces como sea necesario para otorgar acceso a una cuenta definida por IAM a otros clústeres dentro de tu proyecto.

Actualiza una cuenta de IAM con el rol adecuado

Puedes otorgar a los usuarios o cuentas de servicio de IAM la capacidad de autenticarse con instancias de AlloyDB si les otorgas los siguientes roles de IAM:

  • alloydb.databaseUser
  • serviceusage.serviceUsageConsumer

Para ello, sigue las instrucciones que se indican en Otorga acceso a otros usuarios. En el paso en el que seleccionas un rol para otorgar al principal de IAM, elige alloydb.databaseUser.

Agrega un usuario o una cuenta de servicio de IAM a un clúster

Console

  1. Ve a la página Clústeres.

    Ir a los clústeres

  2. Haz clic en el nombre del clúster al que deseas agregar un usuario.

  3. Haz clic en Usuarios.

  4. Haz clic en Agregar cuenta de usuario.

  5. Selecciona Cloud IAM.

  6. En el campo Principal, ingresa el principal de IAM.

    Para una cuenta de usuario de IAM, proporciona la dirección de correo electrónico completa de la cuenta de usuario. Por ejemplo, kai@altostrat.com.

    Para una cuenta de servicio de IAM, proporciona la dirección de la cuenta de servicio sin el sufijo .gserviceaccount.com. Por ejemplo, para especificar la cuenta de servicio my-service@my-project.iam.gserviceaccount.com, debes usar el valor my-service@my-project.iam aquí.

  7. Haz clic en Agregar.

gcloud

Para crear un usuario de la base de datos de PostgreSQL basado en un usuario de IAM o una cuenta de servicio, usa el comando gcloud alloydb users create:

gcloud alloydb users create USERNAME \
--cluster=CLUSTER \
--region=REGION \
--type=IAM_BASED

Reemplaza lo siguiente:

  • USERNAME: Un identificador para el usuario de IAM que deseas agregar como usuario nuevo de la base de datos.

    Para una cuenta de usuario de IAM, proporciona la dirección de correo electrónico completa de la cuenta de usuario. Por ejemplo, kai@altostrat.com.

    Para una cuenta de servicio de IAM, proporciona la dirección de la cuenta de servicio sin el sufijo .gserviceaccount.com. Por ejemplo, para especificar la cuenta de servicio my-service@my-project.iam.gserviceaccount.com, debes usar el valor my-service@my-project.iam aquí.

  • CLUSTER: Es el ID del clúster en el que se creará esta cuenta de usuario de la base de datos.

  • REGION: Es el ID de la región en la que reside el clúster. Por ejemplo, us-central1

Otorga los permisos de base de datos adecuados a los usuarios de IAM

Cuando se agrega un usuario de IAM a una instancia de base de datos, a ese usuario nuevo no se le otorgan privilegios en ninguna base de datos de forma predeterminada.

Cuando un usuario o una cuenta de servicio se conectan a una base de datos, pueden ejecutar consultas en cualquier objeto de la base de datos cuyo acceso se le haya otorgado como PÚBLICO.

Si necesitan acceso adicional, se pueden otorgar más privilegios con la instrucción GRANT de PostgreSQL:

GRANT SELECT ON TABLE_NAME TO "USERNAME";

Reemplaza lo siguiente:

  • USERNAME: la dirección de correo electrónico del usuario. Debes incluir comillas dobles alrededor de la dirección.

  • TABLE_NAME: Es el nombre de la tabla a la que deseas que se otorgue acceso al usuario.

Quita una cuenta de servicio o un usuario de IAM de un clúster

Console

  1. Ve a la página Clústeres.

    Ir a los clústeres

  2. Haz clic en el nombre del clúster del que quieres quitar al usuario.

  3. Haz clic en Usuarios.

  4. En la fila que representa al usuario que quieres quitar, haz clic en Abrir acciones para este usuario.

  5. Selecciona Quitar.

  6. En el cuadro de diálogo ¿Quitar cuenta de usuario?, haz clic en Quitar.

gcloud

Usa el comando gcloud alloydb users delete:

gcloud alloydb users delete USERNAME \
--cluster=CLUSTER \
--region=REGION

Reemplaza lo siguiente:

  • USERNAME: Es el identificador del usuario de IAM que deseas quitar del clúster.

    Para una cuenta de usuario de IAM, proporciona la dirección de correo electrónico completa de la cuenta de usuario. Por ejemplo, kai@altostrat.com.

    Para una cuenta de servicio de IAM, proporciona la dirección de la cuenta de servicio sin el sufijo .gserviceaccount.com. Por ejemplo, para especificar la cuenta de servicio my-service@my-project.iam.gserviceaccount.com, debes usar el valor my-service@my-project.iam aquí.

  • CLUSTER: Es el ID del clúster del que se quitará este usuario.

  • REGION: Es el ID de la región en la que reside el clúster. Por ejemplo, us-central1

¿Qué sigue?