Débuter avec Private Actions
Présentation
Suivez ce guide pour déployer un exécuteur d’actions privé dans l’Agent Datadog avec l’Opérateur Datadog, puis exécutez une action en lecture seule que Datadog autorise automatiquement pour vous.
C’est le chemin recommandé pour commencer. Il utilise la configuration suivante :
- Exécutez l’exécuteur dans l’Agent Datadog, plutôt qu’en tant que processus host autonome.
- Installez avec l’Opérateur Datadog sur Kubernetes.
- Inscrivez-vous avec une clé d’API, afin que l’exécuteur soit autorisé avec des politiques d’exécution.
- Appuyez-vous sur les politiques d’exécution par défaut de Datadog, que Datadog provisionne pour vous, afin d’autoriser des actions Kubernetes en lecture seule ainsi que des Remote Action en lecture seule sur vos exécuteurs sans aucune configuration.
À la fin de ce guide, vous disposerez d’un exécuteur inscrit et d’une action en lecture seule fonctionnelle.
Prérequis
Étape 1 : Créer une clé d’API avec la fonctionnalité Private Action Runner
Un exécuteur sans propriétaire s’inscrit avec une clé d’API dotée de la fonctionnalité Private Action Runner. Il n’a pas besoin de clé d’application.
- Dans Datadog, accédez à Paramètres de l’organisation > Clés d’API et créez ou sélectionnez une clé d’API.
- Sur la clé, à côté de PAR (la fonctionnalité Private Action Runner), cliquez sur Activer.
- Stockez la valeur de la clé dans un secret Kubernetes que l’Agent lit :
kubectl create secret generic datadog-secret \
--from-literal api-key=<DD_API_KEY>
Étape 2 : Déployer l’exécuteur avec l’Opérateur Datadog
Activez l’exécuteur sur votre ressource DatadogAgent via les annotations de l’Opérateur. L’exemple suivant active l’exécuteur à la fois dans le node Agent et le Cluster Agent, l’inscrit comme sans propriétaire avec votre clé d’API et autorise un petit ensemble d’actions en lecture seule.
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
annotations:
agent.datadoghq.com/private-action-runner-enabled: "true"
agent.datadoghq.com/private-action-runner-configdata: |
private_action_runner:
enabled: true
api_key_only_enrollment: true
actions_allowlist:
- "com.datadoghq.remoteaction.*"
- "com.datadoghq.script.*"
cluster-agent.datadoghq.com/private-action-runner-enabled: "true"
cluster-agent.datadoghq.com/private-action-runner-configdata: |
private_action_runner:
enabled: true
api_key_only_enrollment: true
actions_allowlist:
- "com.datadoghq.kubernetes.*"
- "com.datadoghq.script.*"
spec:
global:
clusterName: <YOUR_CLUSTER_NAME>
site:
credentials:
apiSecret:
secretName: datadog-secret
keyName: api-key
Appliquez le manifeste :
kubectl apply -f datadog-agent.yaml
Comme api_key_only_enrollment est défini et que vous ne fournissez qu’une clé d’API, chaque exécuteur s’inscrit automatiquement comme sans propriétaire au démarrage, ce qui signifie qu’il est autorisé avec des politiques d’exécution. Ce manifeste est la configuration minimale de l’Opérateur pour ce guide ; pour la configuration complète de l’exécuteur, les autres méthodes d’installation (host, Windows, Helm) et la référence complète des champs, consultez Set up a private action runner in the Datadog Agent. Pour en savoir plus sur l’inscription, consultez Enrollment and ownership.
Les entrées actions_allowlist dans l’exemple utilisent des caractères génériques de bundle pour autoriser les actions utilisées par ce guide. Pour utiliser plutôt les actions en lecture seule intégrées de l’exécuteur, laissez actions_allowlist vide. L’exécuteur active alors son ensemble d’actions par défaut, qui comprend des Remote Action réseau et shell en lecture seule, ainsi qu’un ensemble d’actions Kubernetes en lecture seule sur le Cluster Agent.
Étape 3 : Confirmez que l’exécuteur est inscrit
Dans Datadog, accédez à Private Action Runners. Vérifiez que votre nouvel exécuteur apparaît dans la liste.
Vous pouvez également consulter les logs du Cluster Agent pour confirmer que l’exécuteur a démarré :
kubectl logs -l app.kubernetes.io/component=cluster-agent --tail=1000 | grep private
Pour les logs du node Agent et d’autres plateformes, consultez Debugging with logs.
Datadog provisionne des politiques d’exécution par défaut dans votre organisation. Ces politiques utilisent un sélecteur de cible *, elles couvrent donc automatiquement chaque Agent qui exécute un exécuteur d’actions privé, y compris celui que vous avez déployé. C’est ce qui autorise les actions en lecture seule sans configuration de politique d’exécution de votre part. Consultez Datadog Default Execution Policies.
Étape 4 : Exécutez votre première action
Exécutez une action Kubernetes en lecture seule sur votre nouvel exécuteur depuis l’Action Catalog. L’Action Catalog exécute une action de la même manière qu’une étape de workflow ; vous choisissez un Agent cible, fournissez des entrées et exécutez l’action.
- Dans le Datadog Action Catalog, ouvrez List Pods (
com.datadoghq.kubernetes.core.listPod). - Sous Configurer la connexion, sélectionnez l’onglet Cible (au lieu de Connexion).
- Définissez Orch Cluster ID sur l’ID du cluster d’orchestration du cluster exécutant votre runner. Vous pouvez trouver l’ID du cluster d’orchestration parmi les tags de votre cluster dans Fleet Automation’s Fleet View.
- Sous Configure inputs, saisissez le Namespace à partir duquel lister les pods. Vous pouvez également définir Sélecteur de champ, Sélecteur d’étiquette ou Limite.
- Cliquez sur Run . Les résultats apparaissent dans le panneau.
L’action s’exécute sur votre runner et renvoie son résultat. Pour exécuter la même action à partir d’un workflow, ajoutez une étape d’action privée dans Workflow Automation et choisissez Target dans son sélecteur de connexion. Consultez Use an Execution Policy in a workflow.
Étapes suivantes
Ce guide utilise les politiques d’exécution par défaut de Datadog, qui autorisent uniquement les actions en lecture seule. Pour exécuter des actions en écriture, ou pour limiter l’accès à des équipes ou des environnements spécifiques, créez votre propre politique d’exécution. Consultez Execution Policies.
Pour aller plus loin
Documentation, liens et articles supplémentaires utiles: