Manejo de credenciales de Private Actions

Descripción general

Las Private Actions permiten que sus flujos de trabajo y aplicaciones de Datadog interactúen con servicios alojados en su red privada sin exponer sus servicios a la internet pública. Para utilizar Private Actions, debe instalar un runner de Private Actions en un servidor de su red y vincular el runner con una conexión de Datadog. Para obtener más información sobre cómo configurar un runner y vincularlo con una conexión, consulte Private Actions.

Algunas Private Actions, como Jenkins y PostgreSQL, requieren credenciales para funcionar. Para configurar las credenciales de Private Actions, debe:

  1. Navegue al directorio donde almacenó la configuración de su runner (predeterminado: config/credentials/).
  2. En este directorio, cree un archivo JSON utilizando la estructura JSON proporcionada en Archivos de credenciales. Alternativamente, edite el archivo JSON predeterminado generado automáticamente durante el arranque del runner.
    • Nota: Estos archivos están disponibles para el runner en su directorio /etc/dd-action-runner/config/credentials/.
  3. Especifique la ruta a la credencial en la conexión del runner. Utilice la ruta al archivo en el contenedor. Por ejemplo: /etc/dd-action-runner/config/credentials/jenkins_token.json.

Archivos de credenciales

HTTP admite tres métodos de autenticación:

  • Autenticación básica: utilícela cuando su servidor HTTP requiera autenticación de nombre de usuario y contraseña.
  • Autenticación por token: utilícela cuando su servidor HTTP requiera uno o más tokens personalizados en encabezados o parámetros de consulta.
  • Sin autenticación: utilícela cuando su servidor HTTP no requiera autenticación.

Autenticación básica

La autenticación básica requiere un archivo de credenciales con un nombre de usuario y una contraseña:

/etc/dd-action-runner/config/credentials/http_basic.json

{
	"auth_type": "Basic Auth",
	"credentials": [
		{
			"username": "USERNAME",
			"password": "PASSWORD"
		}
	]
}

Reemplace USERNAME y PASSWORD con su nombre de usuario y contraseña.

En la conexión del runner, especifique la ubicación del archivo de credenciales en el contenedor del runner de Private Actions. En este ejemplo, el archivo de credenciales se almacena en /etc/dd-action-runner/config/credentials/http_basic.json.

La ruta al archivo de credenciales es '/etc/dd-action-runner/config/credentials/http_basic.json'

Autenticación por token

La autenticación por token requiere un archivo de credenciales con una matriz de nombres y valores de token:

/etc/dd-action-runner/config/credentials/http_token.json

{
	"auth_type": "Token Auth",
	"credentials": [
		{
			"tokenName": "TOKEN1",
			"tokenValue": "VALUE1"
		},
		{
			"tokenName": "TOKEN2",
			"tokenValue": "VALUE2"
		}
	]
}

Reemplace TOKEN1, TOKEN2, VALUE1 y VALUE2 con sus nombres y valores de token.

En la conexión del runner, especifique la ubicación del archivo de credenciales en el contenedor del runner de Private Actions. En este ejemplo, el archivo de credenciales se almacena en /etc/dd-action-runner/config/credentials/http_token.json.

La ruta al archivo de credenciales es '/etc/dd-action-runner/config/credentials/http_token.json'

Sin autenticación

Este tipo de conexión es adecuado para puntos de conexión HTTP que no requieren autenticación.

Para configurar esta conexión, especifique la URL del punto de conexión:

Una conexión HTTP sin autenticación

La conexión de GitLab acepta las siguientes credenciales:

CredencialRequeridoDescripción
baseURLSíLa URL de su instancia de GitLab autogestionada. Para obtener más información, consulte la documentación de la API de GitLab.
gitlabApiTokenSíEl token de API para autenticarse con su instancia de GitLab. Genere este token en la configuración de usuario de GitLab.

Incluya todas las credenciales en un solo archivo:

/etc/dd-action-runner/config/credentials/gitlab_token.json

{
        "auth_type": "Token Auth",
        "credentials": [
                {
                        "tokenName": "gitlabApiToken",
                        "tokenValue": "GITLAB_API_TOKEN"
                },
                {
                        "tokenName": "baseURL",
                        "tokenValue": "GITLAB_URL"
                }
        ]
}

Reemplace GITLAB_API_TOKEN y GITLAB_URL con sus credenciales.

En la conexión del runner, especifique la ubicación del archivo de credenciales en el contenedor del runner de Private Actions. En este ejemplo, el archivo de credenciales se almacena en /etc/dd-action-runner/config/credentials/gitlab_token.json.

La ruta al archivo de credenciales es '/etc/dd-action-runner/config/credentials/gitlab_token.json'

La conexión de Jenkins acepta las siguientes credenciales:

CredencialRequeridoDescripción
domainSíEl dominio del servidor de Jenkins al que desea conectarse.
usernameSíEl nombre de usuario del usuario de Jenkins que desea usar para autenticarse con el servidor de Jenkins. Este usuario debe tener los permisos necesarios para realizar las acciones que desea que su runner realice.
tokenSíEl token de API del usuario de Jenkins que desea usar para autenticarse con el servidor de Jenkins. Este usuario debe tener los permisos necesarios para realizar las acciones que desea realizar. Puede generar un token de API en la configuración de usuario de Jenkins.

Incluya todas las credenciales en un solo archivo:

/etc/dd-action-runner/config/credentials/jenkins_token.json

{
        "auth_type": "Token Auth",
        "credentials": [
                {
                        "tokenName": "username",
                        "tokenValue": "USERNAME"
                },
                {
                        "tokenName": "token",
                        "tokenValue": "API_TOKEN"
                },
                {
                        "tokenName": "domain",
                        "tokenValue": "DOMAIN"
                }
        ]
}

Reemplace USERNAME, API_TOKEN y DOMAIN con sus credenciales.

En la conexión del runner, especifique la ubicación del archivo de credenciales en el contenedor del runner de Private Actions. En este ejemplo, el archivo de credenciales se almacena en /etc/dd-action-runner/config/credentials/jenkins_token.json.

La ruta al archivo de credenciales es '/etc/dd-action-runner/config/credentials/jenkins_token.json'

MongoDB admite dos métodos de autenticación:

  • Autenticación SRV: Úselo al conectarse a MongoDB Atlas o cuando necesite detección automática de conjuntos de réplicas y conmutación por error. Este método utiliza un registro DNS SRV para descubrir automáticamente todos los miembros de un conjunto de réplicas.
  • Autenticación estándar: utilícela al conectarse directamente a un servidor MongoDB o cuando necesite especificar el servidor y el puerto exactos.

Autenticación SRV

La autenticación SRV de MongoDB requiere las siguientes credenciales:

CredencialRequeridoDescripción
usernameSíEl nombre de usuario de MongoDB para la autenticación.
passwordSíLa contraseña de MongoDB para la autenticación.
srvHostSíEl servidor SRV para MongoDB Atlas o el descubrimiento de conjuntos de réplicas.
databaseNoEl nombre de la base de datos a la que conectarse.

Incluya todas las credenciales en un solo archivo:

/etc/dd-action-runner/config/credentials/mongodb_srv_token.json

{
        "auth_type": "Token Auth",
        "credentials": [
                {
                        "tokenName": "username",
                        "tokenValue": "USERNAME"
                },
                {
                        "tokenName": "password",
                        "tokenValue": "PASSWORD"
                },
                {
                        "tokenName": "srvHost",
                        "tokenValue": "SRV_HOST"
                },
                {
                        "tokenName": "database",
                        "tokenValue": "DATABASE"
                }
        ]
}

Reemplace USERNAME, PASSWORD, SRV_HOST y DATABASE con sus credenciales.

En la conexión del runner, especifique la ubicación del archivo de credenciales en el contenedor del runner de Private Actions. En este ejemplo, el archivo de credenciales se almacena en /etc/dd-action-runner/config/credentials/mongodb_srv_token.json.

La ruta al archivo de credenciales es '/etc/dd-action-runner/config/credentials/mongodb_srv_token.json'

Autenticación estándar

La autenticación estándar de MongoDB acepta las siguientes credenciales:

CredencialRequeridoDescripción
usernameSíEl nombre de usuario de MongoDB para la autenticación.
passwordSíLa contraseña de MongoDB para la autenticación.
hostSíEl nombre del servidor MongoDB.
portSíEl número de puerto del servidor MongoDB.
databaseNoEl nombre de la base de datos a la que conectarse.
authSourceNoLa base de datos que contiene las credenciales del usuario. Especifique si el usuario se crea en una base de datos diferente a admin.
authMechanismNoEl mecanismo de autenticación que se debe usar. Especifique si se requiere un mecanismo de autenticación específico.

Incluya todas las credenciales en un solo archivo:

/etc/dd-action-runner/config/credentials/mongodb_standard_token.json

{
        "auth_type": "Token Auth",
        "credentials": [
                {
                        "tokenName": "username",
                        "tokenValue": "USERNAME"
                },
                {
                        "tokenName": "password",
                        "tokenValue": "PASSWORD"
                },
                {
                        "tokenName": "host",
                        "tokenValue": "HOST"
                },
                {
                        "tokenName": "port",
                        "tokenValue": "PORT"
                },
                {
                        "tokenName": "database",
                        "tokenValue": "DATABASE"
                },
                {
                        "tokenName": "authSource",
                        "tokenValue": "AUTH_SOURCE"
                },
                {
                        "tokenName": "authMechanism",
                        "tokenValue": "AUTH_MECHANISM"
                }
        ]
}

Reemplace USERNAME, PASSWORD, HOST, PORT, DATABASE, AUTH_SOURCE y AUTH_MECHANISM con sus credenciales.

En la conexión del runner, especifique la ubicación del archivo de credenciales en el contenedor del runner de Private Actions. En este ejemplo, el archivo de credenciales se almacena en /etc/dd-action-runner/config/credentials/mongodb_standard_token.json.

La ruta al archivo de credenciales es '/etc/dd-action-runner/config/credentials/mongodb_standard_token.json'

La conexión de PostgreSQL acepta las siguientes credenciales:

CredencialRequeridoDescripción
hostSíEl nombre del servidor al cual conectarse. Para más información, consulte la documentación oficial de PostgreSQL.
portSíEl número de puerto para conectarse al servidor, o la extensión del nombre de archivo del socket para conexiones de dominio UNIX. Para más información, consulte la documentación oficial de PostgreSQL.
userSíEl nombre de usuario de PostgreSQL con el que conectarse.

Para más información, consulte la documentación oficial de PostgreSQL.
passwordSíLa contraseña que se debe usar si el servidor requiere autenticación por contraseña.

Para más información, consulte la documentación oficial de PostgreSQL.
databaseSíEl nombre de la base de datos. Para más información, consulte la documentación oficial de PostgreSQL.
sslmodeSíEsta opción determina si se negocia una conexión TCP/IP SSL segura con el servidor y con qué prioridad.

Las opciones disponibles son require y disable.

Para más información, consulte la documentación oficial de PostgreSQL.
applicationNameNoEl nombre de la aplicación que se conecta al servidor PostgreSQL. Para más información, consulte la documentación oficial de PostgreSQL.
searchPathNoEstablezca una ruta de búsqueda de esquema. Para más información, consulte la documentación oficial de PostgreSQL.

Incluya todas las credenciales en un solo archivo:

/etc/dd-action-runner/config/credentials/postgresql_token.json

{
        "auth_type": "Token Auth",
        "credentials": [
                {
                        "tokenName": "host",
                        "tokenValue": "HOST_NAME"
                },
                {
                        "tokenName": "port",
                        "tokenValue": "PORT"
                },
                {
                        "tokenName": "user",
                        "tokenValue": "USER"
                },
                {
                        "tokenName": "password",
                        "tokenValue": "PASSWORD"
                },
                {
                        "tokenName": "database",
                        "tokenValue": "DATABASE_NAME"
                },
                {
                        "tokenName": "sslmode",
                        "tokenValue": "require"
                },
                {
                        "tokenName": "applicationName",
                        "tokenValue": "APPLICATION_NAME"
                },
                {
                        "tokenName": "searchPath",
                        "tokenValue": "SEARCH_PATH"
                }
        ]
}

Reemplace los valores de ejemplo con sus credenciales.

En la conexión del ejecutor, especifique la ubicación del archivo de credenciales en el contenedor del ejecutor de acciones privado. En este ejemplo, el archivo de credenciales se almacena en /etc/dd-action-runner/config/credentials/postgresql_token.json.

La ruta al archivo de credenciales es '/etc/dd-action-runner/config/credentials/postgresql_token.json'

Temporal admite tres métodos de autenticación:

  • Autenticación mTLS: utilícela para la comunicación más segura con autenticación de certificado bidireccional de servidor a cliente.
  • Autenticación TLS: utilícela para una comunicación segura con autenticación de certificado de servidor.
  • Sin autenticación: utilícela para comunicación sin cifrar (no se recomienda para entornos de producción).

Autenticación mTLS

La autenticación mTLS de Temporal requiere las siguientes credenciales:

CredencialRequeridoDescripción
serverAddressSíLa dirección del servidor (nombre de servidor y puerto opcional). Si no se define, el puerto predeterminado es 7233.
serverNameOverrideSíEl nombre del servidor que anula el nombre de destino (SNI) utilizado para la comprobación del nombre del servidor TLS. Esto puede ser útil cuando tiene un proxy inverso frente a un servidor de Temporal y desea anular el SNI para enrutar el tráfico al backend apropiado según reglas personalizadas.
serverRootCACertificateSíEl certificado de CA raíz utilizado por el servidor. Si no se establece, y si el certificado del servidor es emitido por una autoridad de confianza, la verificación seguirá teniendo éxito (por ejemplo, si utiliza un proveedor de nube como AWS, Google Cloud o Azure, que emiten certificados de servidor a través de CA reconocidas y de confianza).
clientCertPairCrtSíEl certificado de cliente para conectarse con mTLS.
clientCertPairKeySíLa clave de cliente para conectarse con mTLS.

Incluya todas las credenciales en un solo archivo:

/etc/dd-action-runner/config/credentials/temporal_mTLS_token.json

{
        "auth_type": "Token Auth",
        "credentials": [
                {
                        "tokenName": "serverAddress",
                        "tokenValue": "SERVER_ADDRESS"
                },
                {
                        "tokenName": "serverNameOverride",
                        "tokenValue": "SERVER_NAME_OVERRIDE"
                },
                {
                        "tokenName": "serverRootCACertificate",
                        "tokenValue": "SERVER_ROOT_CA_CERTIFICATE"
                },
                {
                        "tokenName": "clientCertPairCrt",
                        "tokenValue": "CLIENT_CERTIFICATE"
                },
                {
                        "tokenName": "clientCertPairKey",
                        "tokenValue": "CLIENT_KEY"
                }
        ]
}

Reemplace SERVER_ADDRESS, SERVER_NAME_OVERRIDE, SERVER_ROOT_CA_CERTIFICATE, CLIENT_CERTIFICATE y CLIENT_KEY con sus credenciales.

En la conexión del ejecutor, especifique la ubicación del archivo de credenciales en el contenedor del ejecutor de acciones privado. En este ejemplo, el archivo de credenciales se almacena en /etc/dd-action-runner/config/credentials/temporal_mTLS_token.json.

La ruta al archivo de credenciales es '/etc/dd-action-runner/config/credentials/temporal_mTLS_token.json'

Autenticación TLS

La autenticación TLS de Temporal requiere las siguientes credenciales:

CredencialRequeridoDescripción
serverAddressSíLa dirección del servidor (nombre de servidor y puerto opcional) Si no se define, el puerto predeterminado es 7233.
serverNameOverrideSíEl nombre del servidor que anula el nombre de destino (SNI) utilizado para la comprobación del nombre del servidor TLS. Esto puede ser útil cuando tiene un proxy inverso frente a un servidor de Temporal y desea anular el SNI para enrutar el tráfico al backend apropiado según reglas personalizadas.
serverRootCACertificateSíEl certificado de CA raíz utilizado por el servidor. Si no se establece, y si el certificado del servidor es emitido por una autoridad de confianza, la verificación seguirá teniendo éxito (por ejemplo, si utiliza un proveedor de nube como AWS, Google Cloud o Azure, que emiten certificados de servidor a través de CA reconocidas y de confianza).

Incluya todas las credenciales en un solo archivo:

/etc/dd-action-runner/config/credentials/temporal_TLS_token.json

{
        "auth_type": "Token Auth",
        "credentials": [
                {
                        "tokenName": "serverAddress",
                        "tokenValue": "SERVER_ADDRESS"
                },
                {
                        "tokenName": "serverNameOverride",
                        "tokenValue": "SERVER_NAME_OVERRIDE"
                },
                {
                        "tokenName": "serverRootCACertificate",
                        "tokenValue": "SERVER_ROOT_CA_CERTIFICATE"
                }
        ]
}

Reemplace SERVER_ADDRESS, SERVER_NAME_OVERRIDE y SERVER_ROOT_CA_CERTIFICATE con sus credenciales.

En la conexión del ejecutor, especifique la ubicación del archivo de credenciales en el contenedor del ejecutor de acciones privado. En este ejemplo, el archivo de credenciales se almacena en /etc/dd-action-runner/config/credentials/temporal_TLS_token.json.

La ruta al archivo de credenciales es '/etc/dd-action-runner/config/credentials/temporal_TLS_token.json'

Sin autenticación

Este tipo de conexión utiliza comunicación sin cifrar y no se recomienda para entornos de producción. Solo debe utilizarse en entornos de desarrollo o para probar conexiones. Para uso en producción, considere utilizar los tipos de autenticación TLS o mTLS.

El tipo de conexión requiere las siguientes credenciales:

CredencialRequeridoDescripción
addressSíEl nombre del servidor y el puerto opcional. El puerto se establece de forma predeterminada en 7233 si la dirección solo contiene el servidor.

Para este tipo de conexión, no necesita crear un archivo de credenciales ya que la dirección no es un secreto y se almacena directamente en Datadog. Para configurar, proporcione la dirección del servidor:

Una conexión no segura de Temporal