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:
Debes habilitar manualmente la autenticación de IAM en cada instancia a la que se deban conectar las cuentas de usuario o de servicio de IAM.
Para cada cuenta de servicio o usuario de IAM que necesite acceder como usuario de la base de datos, debes completar los siguientes pasos:
Con las herramientas de administrador de IAM, otorga a ese usuario o a la cuenta de servicio los roles
alloydb.databaseUser
yserviceusage.serviceUsageConsumer
.Con Google Cloud CLI, crea un usuario de la base de datos correspondiente a ese usuario o cuenta de servicio en tu clúster de AlloyDB.
Con una cuenta de administrador de bases de datos, como
postgres
, otorga los privilegios de acceso de usuario de la base de datos nueva a las tablas de la base de datos adecuadas.
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:
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.
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
Ve a la página Clústeres.
Haz clic en el nombre del clúster al que deseas agregar un usuario.
Haz clic en Usuarios.
Haz clic en Agregar cuenta de usuario.
Selecciona Cloud IAM.
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 serviciomy-service@my-project.iam.gserviceaccount.com
, debes usar el valormy-service@my-project.iam
aquí.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 serviciomy-service@my-project.iam.gserviceaccount.com
, debes usar el valormy-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
Ve a la página Clústeres.
Haz clic en el nombre del clúster del que quieres quitar al usuario.
Haz clic en Usuarios.
En la fila que representa al usuario que quieres quitar, haz clic en
Abrir acciones para este usuario.Selecciona Quitar.
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 serviciomy-service@my-project.iam.gserviceaccount.com
, debes usar el valormy-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