• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Gestion des secrets

Avec la gestion des secrets, vous pouvez configurer l'agent et l'intégration sur l'hôte pour utiliser des données sensibles (telles que les mots de passe) sans avoir à les écrire en texte brut dans les fichiers configuration . Actuellement, Hashicorp Vault, AWS KMS, CyberArk, l'obfuscation CLI New Relic et les commandes personnalisées sont pris en charge.

Apprenez-en plus dans cette vidéo NerdBytes (5:12 minutes).

Définir les secrets

Pour utiliser des secrets dans un fichier de configuration YAML :

  1. Définissez une section variables , où chaque entrée est un nom pour un objet secret.
  2. Dans chaque entrée, incluez la source du secret et la configuration appropriée pour récupérer ces secrets.
  3. Dans la section configuration générale, définissez ${variable.property} espace réservé qui sera automatiquement remplacé par les propriétés de l'objet secret. L'objet secret peut être défini comme une simple chaîne ou un objet json.

Important

Si la récupération des secrets échoue, l'intégration ne sera pas exécutée, car l'agent d'infrastructure ne dispose pas de toutes les données dont il a besoin pour s'exécuter.

Par exemple, la configuration suivante récupérera un objet nommé creds dans Vault (vous pouvez définir le nom de l'objet pour le secret). Supposons que l'objet stocké est un JSON valide avec une propriété nommée user et une autre propriété nommée password. Nous souhaitons les utiliser pour définir les informations d'identification HTTP de base de la propriété status_url à partir d'une intégration Nginx sur hôte :

variables:
creds:
vault:
http:
url: http://my.vault.host/v1/newengine/data/secret
headers:
X-Vault-Token: my-vault-token
integrations:
- name: nri-nginx
env:
METRICS: "true"
STATUS_URL: http://${creds.user}:${creds.password}@example.com/status
STATUS_MODULE: discover
REMOTE_MONITORING: true
interval: 30s
labels:
env: production
role: load_balancer

Conseil

Les chaînes simples et les objets JSON valides peuvent être récupérés à partir de variables.\ Lorsque vous utilisez des objets JSON, assurez-vous que les clés et les valeurs sont entourées de guillemets doubles.

Utilisation des variables d'environnement

Les variables d'environnement peuvent être utilisées dans la section variables avec la notation {{MY_ENV_VAR}} . Ce faisant, les variables d’environnement sont développées et leur valeur est remplacée au moment de l’exécution.

Utilisez cette méthode pour éviter d’avoir des valeurs sensibles telles que des jeton ou des clés obfuscation incluses dans le fichier configuration .

Lors de l'utilisation de variables d'environnement dans les fichiers configuration intégration sur hôte, le paramètre passthrough_environment doit être défini.

Variables secrètes

Définissez des secrets dans chaque configuration sous une section variables . Chaque entrée est un nom secret défini par l'utilisateur qui stockera les propriétés des secrets récupérés. Chaque variable peut contenir les propriétés suivantes :

Clé YAML

Description

ttl

Type : chaîne

Durée avant qu'un secret soit actualisé. Il peut s'agir d'un nombre suivi d'une unité de temps (s, m ou h).

Exemples : 30s, 10m, 1h

Défaut: 1h

aws-kms

Configuration de la récupération du secret AWS KMS

vault

Configuration de la récupération des secrets du coffre-fort

cyberark-cli

Configuration de l'interface de ligne de commande CyberArk

cyberark-api

Configuration de la REST API CyberArk

obfuscated

obfuscationla CLI de New Relic

Les secrets d'AWS KMS

Pour récupérer vos secrets depuis Amazon KMS, vous pouvez définir les propriétés suivantes dans votre section aws-kms . Tous les champs ne sont pas obligatoires. Par exemple, vous aurez besoin de data, file ou http pour fournir la chaîne KMS codée.

Clé YAML

Description

data

Type : chaîne

Chaîne KMS codée en Base64 à décrypter

file

Type : chaîne

Chemin d'accès au fichier contenant la chaîne KMS codée en Base64 à décrypter

http

Type : propriétés YAML

configuration HTTP à utiliser pour demander la chaîne KMS codée en Base64 à décrypter. Pour plus d'informations, voir Vault http.

credential_file

Type : chaîne

Chemin d'accès au fichier d'informations d'identification AWS

config_file

Type : chaîne

Chemin d'accès au fichier de configuration AWS

region

Type : chaîne

Région AWS KMS

type

Type : chaîne (plain, equal ou json)

Format de la valeur secrète :

  • plain: une chaîne brute à stocker directement dans la variable de destination.

  • equal: une chaîne d'une seule ligne key=property à stocker en tant que propriétés d'objet dans la variable de destination.

  • json: un objet JSON à stocker en tant que propriétés dans la variable de destination.

    Les secrets de type plain ou json utilisent la notation par points ; par exemple, ${mysecret.nestedkey}.

L'exemple suivant permettra de récupérer une chaîne de mot de passe simple à partir d'AWS KMS. Il doit être déchiffré à partir de la chaîne codée data fournie.

variables:
myPassword:
aws-kms:
data: T0hBSStGTEVY
region: ap-southeast-2
credential_file: "./my-aws-credentials-file"
config_file: "./my-aws-config-file"
type: plain

Les secrets du coffre-fort

Vault doit activer un champ http contenant la configuration HTTP utilisée pour se connecter à Vault. L'entrée http peut contenir les entrées suivantes :

Clé YAML

Description

url

Type : chaîne

URL pour demander des données

tls_config

Type : propriétés YAML

Utiliser les propriétés de configuration TLS

headers

Type : carte YAML

En-têtes de requête

Propriétés de tls_config

Important

Les secrets doivent utiliser la notation par points, par exemple, ${mysecret.nestedkey}.

Clé YAML

Description

enable

Type : Booléen

Activer TLS

Défaut: false

insecure_skip_verify

Type : Booléen

Ignorer la vérification de la chaîne de certificats du serveur et de l'hôte

Défaut: false

min_version

Type : UInt16

La version SSL/TLS minimale acceptable

Par défaut : 0 (qui utilise la version TLS 1.0)

max_version

Type : UInt16

La version SSL/TLS maximale acceptable

Par défaut : 0 (qui utilise la version TLS 1.3)

ca

Type : chaîne

Certificat TLS

""

L'exemple suivant récupère un secret à l'aide d'un jeton Vault à partir d'un serveur sécurisé et ignore la vérification des certificats du serveur :

variables:
mydata:
vault:
http:
url: https://my.vault.host/v1/newengine/data/secret
headers:
X-Vault-Token: my-vault-token
tls_config:
insecure_skip_verify: true

Interface de ligne de commande CyberArk

Pour récupérer des secrets à partir de l'interface de ligne de commande CyberArk (CLI), utilisez la configuration suivante, toutes les clés sont requises

Clé YAML

Description

cli

Type : chaîne

Chemin d'accès complet vers l'exécutable de la CLI CyberArk

Défaut: ""

app-identifiant

Type : chaîne

identifiant d'application du détenteur du secret

Défaut: ""

safe

Type : chaîne

Coffre-fort contenant le secret

Défaut: ""

folder

Type : chaîne

Dossier contenant le secret

Défaut: ""

object

Type : chaîne

L'objet auquel le secret est associé

Défaut: ""

L'exemple suivant récupère un secret CyberArk à l'aide de l'interface de ligne de commande :

variables:
credentials:
cyberark-cli:
cli: /full/path/to/clipasswordsdk
app-id: my-appid
safe: my-safe
folder: my-folder
object: my-object

REST API CyberArk

Pour récupérer des secrets à l'aide de la REST API CyberArk, il doit y avoir une clé http contenant la configuration HTTP. La clé http contient ces sous-clés, seule url est requise :

Clé YAML

Description

url

Type : chaîne

URL pour demander des données, cette clé est requise

Par défaut : aucun

tls_config

Type : propriétés YAML

Utiliser les propriétés de configuration TLS

headers

Type : carte YAML

En-têtes de requête

L'exemple suivant récupère un secret à l'aide de la REST API CyberArk, en ignorant la vérification du certificat du serveur :

variables:
credentials:
cyberark-api:
http:
url: https://hostname/AIMWebService/api/Accounts?AppID=myAppID&Query=Safe=mySafe;Object=myObject
tls_config:
insecure_skip_verify: true

En vous référant à l'exemple ci-dessus, appelez le nom d'utilisateur et le mot de passe comme ceci :

USERNAME: ${credentials.user}
PASSWORD: ${credentials.password}

Remarque : pour Microsoft SQL Server, si vous utilisez une connexion utilisateur d’authentification Windows, vous devez préfixer le USERNAME avec votre domaine. Par exemple:

USERNAME: <domain>\${credentials.user}

Obfuscation de la CLI de New Relic

Important

Nous vous recommandons d'utiliser l'un des fournisseurs de secrets pris en charge au lieu de la simple obfuscation lorsque cela est possible. Une simple obfuscation ne garantit pas la confidentialité de vos informations d’identification, car le processus peut être inversé.

Consultez nos directives ci-dessous pour définir des variables d'environnement afin d'éviter d'avoir la clé d'obfuscation dans les fichiers de configuration.

Utilisez Powershell sur les hôtes Windows plutôt que la fenêtre d'invitation de commande, car la fenêtre d'invitation de commande peut gérer les guillemets de manière inattendue.

Conseil

L'agent d'infrastructure 1.14.0 ou supérieur est requis

Vous pouvez utiliser la commande obfuscate de l'interface de ligne de commande New Relic pour masquer les informations sensibles dans l'agent infrastructure ou dans tout fichier configuration intégration sur hôte.

Mesures:

newrelic agent config obfuscate --value '<plain_text_config_value>' --key '<obfuscation_key>'
  • Copiez le résultat de la commande cli dans l’argument text de la section obfuscated comme indiqué dans les exemples ci-dessous.
  • Vous pouvez obscurcir les blocs JSON si vous devez référencer plusieurs valeurs dans votre fichier YML de configuration. Notez que vous devrez peut-être échapper aux guillemets "" avec des barres obliques inverses sur les hôtes Windows. Par exemple : '{\"attribute\":\"value\".... De plus, utilisez Powershell sur les hôtes Windows , plutôt que la fenêtre d'invitation de commande, car la fenêtre d'invitation de commande peut gérer les guillemets de manière inattendue.
newrelic agent config obfuscate --value '{"attribute":"value","attribute2":"value2"}' --key '<obfuscation_key>'

Clé YAML

Description

clé

Type : chaîne

La chaîne utilisée lors de l'obscurcissement de la valeur en texte clair à l'aide de New Relic CLI

Par défaut : aucun

secret

Type : chaîne

La sortie de la commande newrelic-cli

Par défaut : aucun

Integrations configuration example

L'exemple suivant permettra de récupérer l'utilisateur et le mot de passe Nginx qui ont été obscurcis à l'aide de la CLI New Relic. Cet exemple utilise la notation par points lors de la récupération des informations d'identification, car la valeur obscurcie était un bloc JSON :

variables:
creds:
obfuscated:
key: 'random_key_used_in_cli'
secret: 'obscured_output_from_cli'
integrations:
- name: nri-nginx
env:
METRICS: "true"
STATUS_URL: http://${creds.user}:${creds.password}@example.com/status
STATUS_MODULE: discover
REMOTE_MONITORING: true
interval: 30s
labels:
env: production
role: load_balancer

Il est recommandé d'utiliser des variables d'environnement pour les arguments d'obfuscation comme indiqué dans l'exemple ci-dessous :

variables:
creds:
obfuscated:
key: {{OBFUSCATION_KEY}}
secret: {{OBFUSCATION_TEXT}}
integrations:
- name: nri-nginx
env:
METRICS: "true"
STATUS_URL: http://${creds.user}:${creds.password}@example.com/status
STATUS_MODULE: discover
REMOTE_MONITORING: true
interval: 30s
labels:
env: production
role: load_balancer

Agent configuration example

Cet exemple permet de récupérer une chaîne contenant les détails du proxy (utilisateur, mot de passe et hôte) :

variables:
obfuscated_proxy:
obfuscated:
key: 'random_key_used_in_cli'
secret: 'obscured_output_from_cli'
proxy: ${obfuscated_proxy}

Commandes personnalisées

Important

La configuration command nécessite un agent d'infrastructure 1.41.0 ou supérieur. Assurez-vous que l'agent dispose des autorisations requises pour exécuter le command configuré en fonction des exigences de votre environnement.

Vous pouvez charger la configuration de l'agent ou de l'intégration à partir de commandes personnalisées disponibles sur le même hôte. L'agent infrastructure détectera quand la configuration doit être initialement chargée à partir d'une sortie command et conservera les valeurs à jour en fonction d'un temps d'actualisation ttl.

Le format de sortie attendu pour la commande est soit JSON, soit String :

JSON

La structure JSON suivante est attendue comme sortie principale (stdout) à partir du command défini :

{
"data": {
"myKey": "myValue"
},
"ttl": "24h"
}
  • Un champ data de niveau supérieur est obligatoire.
  • Un champ ttl de niveau supérieur est obligatoire.

Il peut ensuite être utilisé dans n’importe quel fichier de configuration utilisant la notation ${myVariable.key} . Dans l'exemple suivant, une commande my-custom-auth est exécutée avec un paramètre domain puis charge le token résultant en tant que configuration d'agent :

variables:
myToken:
command:
path: '/path/to/my-custom-auth-json'
args: ["--domain", "myDomain", "--other_param", "otherValue"]
ttl: 24h
# my-custom-auth output example: {"data":{"token":"XXXXYYYYZZZZ"}, "ttl": "24h"}
# the `token` result can be included as ${myToken.token} in any configuration.
http:
headers:
"Proxy-Authorization": ${myToken.token}

Chaîne (texte/plaine)

Si la sortie de la commande est une chaîne simple, elle peut être référencée dans la configuration à l'aide de la notation ${myVar} .

Exemple:

variables:
myToken:
command:
path: '/path/to/my-custom-auth-string'
args: ["arg1", "arg2"]
ttl: 24h
# my-custom-auth output example: "XXXXYYYYZZZZ"
# the `token` result can be included as ${myToken} on any configuration.
http:
headers:
"Proxy-Authorization": ${myToken}
Droits d'auteur © 2025 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.