La Monitorización de base de datos de Datadog (DBM) te permite ver planes de explicación y muestras de consultas que se ejecutan en tus hosts de base de datos. Esta guía te muestra cómo utilizar las funciones de autenticación gestionadas en la nube, como IAM, para conectar el Agent a tu base de datos. Esto proporciona una forma más segura de autenticación y te ahorra tener que gestionar las credenciales de la base de datos a través de tus hosts de Agent.
AWS admite la autenticación de IAM para bases de datos de RDS y Aurora. A partir de Datadog Agent versión 7.57, la autenticación de IAM entre cuentas es compatible con las bases de datos de RDS y Aurora.
Con el fin de configurar el Agent para conectarte utilizando IAM, sigue los pasos para completar la configuración de la base de datos y el Datadog Agent.
Activa la autenticación de IAM en tu instancia de RDS o Aurora.
Crea una política de IAM para la autenticación de la base de datos. Sustituye <YOUR_IAM_AUTH_DB_USER> por el usuario de la base de datos local en el documento de la política de IAM:
AWS también admite comodines para especificar el recurso; por ejemplo, si deseas permitir que el usuario datadog se autentique en todas las instancias de una cuenta, añade lo siguiente:
Crea un rol de IAM y adjunta la política de IAM creada para la autenticación de la BD al rol.
# Crea un rol de IAM para la instancia de EC2# Reemplaza `<YOUR_IAM_AUTH_DB_ROLE>` con el nombre del rol de IAMaws iam create-role --role-name <YOUR_IAM_AUTH_DB_ROLE> --assume-role-policy-document '{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}'# Adjunta la política de IAM al rol de IAM# Reemplaza `<YOUR_IAM_AUTH_DB_POLICY_ARN>` con el ARN de la política de IAM del paso 2aws iam attach-role-policy --role-name <YOUR_IAM_AUTH_DB_ROLE> --policy-arn <YOUR_IAM_AUTH_DB_POLICY_ARN>
Adjunta el rol de IAM a la instancia de EC2 en la que se ejecuta el Agent. Para obtener más información, consulta Roles de IAM para Amazon EC2.
Crea un rol de IAM y adjunta la política de IAM creada para la autenticación de la BD al rol.
# Crea un rol de IAM para la tarea de ECS# Reemplaza `<YOUR_IAM_AUTH_DB_ROLE>` con el nombre del rol de IAMaws iam create-role --role-name <YOUR_IAM_AUTH_DB_ROLE> --assume-role-policy-document '{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ecs-tasks.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}'# Adjunta la política de IAM al rol de IAM# Reemplaza `<YOUR_IAM_AUTH_DB_POLICY_ARN>` con el ARN de la política de IAM del paso 2aws iam attach-role-policy --role-name <YOUR_IAM_AUTH_DB_ROLE> --policy-arn <YOUR_IAM_AUTH_DB_POLICY_ARN>
En la definición de la tarea de ECS, adjunta el rol de IAM al rol de la tarea donde se define el contenedor del Agent. Para obtener más información, consulta Roles de IAM para Amazon ECS.
Crea un rol de IAM y adjunta la política de IAM creada para la autenticación de la BD al rol.
# Crea un proveedor de IAM OIDC para tu clúster# Reemplaza `<YOUR_ESK_REGION>` y `<YOUR_ESK_CLUSTER>` con la región y el nombre de tu clúster de ESK$ eksctl utils associate-iam-oidc-provider \
--region=<YOUR_ESK_REGION> \
--cluster=<YOUR_ESK_CLUSTER> \
--approve
# Crea una cuenta de servicio# Reemplaza `<YOUR_IAM_AUTH_DB_POLICY_ARN>` con el ARN de la política de IAM del paso 2# Reemplaza `<YOUR_IAM_AUTH_SERVICE_ACCOUNT>` y `<YOUR_IAM_AUTH_SERVICE_ACCOUNT_NAMESPACE>` con el nombre y espacio de nombres de la cuenta de servicio$ eksctl create iamserviceaccount \
--cluster <YOUR_ESK_CLUSTER> \
--name <YOUR_IAM_AUTH_SERVICE_ACCOUNT> \
--namespace <YOUR_IAM_AUTH_SERVICE_ACCOUNT_NAMESPACE> \
--attach-policy-arn <YOUR_IAM_AUTH_DB_POLICY_ARN> \
--override-existing-serviceaccounts \
--approve
Actualiza la configuración de tu instancia de Postgres con un bloque aws en el que se especifique la region de la instancia RDS, y establece managed_authentication.enabled en true:
Crea un rol de IAM en la cuenta donde se encuentra la instancia de RDS y adjunta la política de IAM creada para la autenticación de la BD al rol utilizando el siguiente ejemplo.
Sustituye <YOUR_IAM_AUTH_DB_ROLE> por el nombre del rol de IAM
Sustituye <YOUR_AWS_ACCOUNT_FOR_AGENT> por el ID de la cuenta de AWS donde se ejecuta el Agent
Sustituye <YOUR_AGENT_EC2_ROLE> por el rol de IAM de la instancia de EC2 donde se ejecuta el Agent
Sustituye <YOUR_IAM_AUTH_DB_POLICY_ARN> por el ARN de la política de IAM creada para la autenticación de la base de datos.
Modifica las políticas de permisos de rol de IAM de la instancia de EC2 donde se ejecuta el Agent, para permitir asumir el rol de IAM creado en el paso anterior.
Sustituye <YOUR_AGENT_EC2_ROLE> por el rol de IAM de la instancia de EC2 donde se ejecuta el Agent
Sustituye <YOUR_IAM_AUTH_DB_ROLE> por el nombre del rol de IAM creado para la autenticación de la base de datos.
Sustituye <YOUR_AWS_ACCOUNT_FOR_DB> por el ID de la cuenta de AWS donde se encuentra la instancia de RDS
Crea un rol de IAM en la cuenta donde se encuentra la instancia de RDS y adjunta la política de IAM creada para la autenticación de la BD al rol utilizando el siguiente ejemplo.
Sustituye <YOUR_IAM_AUTH_DB_ROLE> por el nombre del rol de IAM creado para la autenticación de la base de datos.
Sustituye <YOUR_AWS_ACCOUNT_FOR_AGENT> por el ID de la cuenta de AWS donde se ejecuta el Agent
Sustituye <YOUR_AGENT_ECS_ROLE> por el rol de IAM de la tarea de ECS donde se ejecuta el Agent
Sustituye <YOUR_IAM_AUTH_DB_POLICY_ARN> por el ARN de la política de IAM creada para la autenticación de la base de datos.
Modifica las políticas de permisos del rol de IAM de la tarea de ECS donde se ejecuta el Agent para permitir que el Agent asuma el rol de IAM creado en el paso anterior.
Sustituye <YOUR_AGENT_ECS_ROLE> por el rol de IAM de la tarea de ECS donde se ejecuta el Agent
Sustituye <YOUR_IAM_AUTH_DB_ROLE> por el nombre del rol de IAM
Sustituye <YOUR_AWS_ACCOUNT_FOR_DB> por el ID de la cuenta de AWS donde se encuentra la instancia de RDS
Crea un rol de IAM en la cuenta donde se encuentra la instancia de RDS y adjunta la política de IAM creada para la autenticación de la BD al rol utilizando el siguiente ejemplo.
Sustituye <YOUR_IAM_AUTH_DB_ROLE> por el nombre del rol de IAM
Sustituye <YOUR_AWS_ACCOUNT_FOR_AGENT> por el ID de la cuenta de AWS donde se ejecuta el Agent
Sustituye <YOUR_AGENT_EKS_ROLE> por el rol de IAM que utilizarán los pods de EKS en los que se ejecuta el Agent.
Sustituye <YOUR_IAM_AUTH_DB_POLICY_ARN> por el ARN de la política de IAM creada para la autenticación de la base de datos.
Actualiza la configuración de tu instancia de Postgres con un bloque aws como se muestra a continuación:
Especifica la region de la instancia de RDS
Establece managed_authentication.enabled en true
Especifica el ARN del rol, sustituyendo <YOUR_AWS_ACCOUNT_FOR_DB> por el ID de la cuenta de AWS donde se encuentra la instancia de RDS y <YOUR_IAM_AUTH_DB_ROLE> por el nombre del rol de IAM creado en el paso 1.
Azure permite a los usuarios configurar la autenticación de identidad gestionada para cualquier recurso que pueda acceder a Microsoft Entra ID, anteriormente Azure Active Directory. El Datadog Agent admite la autenticación de identidad gestionada asignada por el usuario para tus bases de datos en la nube.
Establece la configuración de tu instancia con el bloque YAML azure.managed_authentication, donde CLIENT_ID es el ID de cliente de la identidad gestionada:
instances:- host:example-flex-server.postgres.database.azure.comdbm:trueusername:"<IDENTITY_NAME>"ssl:"require"azure:deployment_type:flexible_serverfully_qualified_domain_name:example-flex-server.postgres.database.azure.commanaged_authentication:enabled:trueclient_id:"<CLIENT_ID>"# Opcionalmente, configura el alcance desde dónde solicitar el token de identidadidentity_scope:"https://ossrdbms-aad.database.windows.net/.default"