Aperçu
Nous travaillons toujours sur cette fonctionnalité, mais nous aimerions que vous l'essayiez !
Cette fonctionnalité est actuellement fournie dans le cadre d'un programme d'aperçu conformément à nos politiques de pré-sortie.
Autorisez l'automatisation workflow New Relic à effectuer des actions dans votre compte AWS. Vous configurerez une méthode d'authentification permettant au workflow d'interagir en toute sécurité avec les services AWS tels que EC2, SQS, DynamoDB et bien plus encore, sans intégrer en dur les informations d'identification ni compromettre la sécurité.
Prérequis
Avant de configurer vos identifiants AWS, assurez-vous d'avoir :
- Un compte AWS disposant de l'autorisation de créer des rôles IAM ou des utilisateurs.
- Votre identifiant de compte New Relic.
- Accès administrateur à la console AWS IAM.
Comprendre les autorisations requises
Avant de créer des identifiants, assurez-vous de bien comprendre les autorisations nécessaires à votre workflow. N’accordez que les autorisations réellement utilisées par votre workflow – cela respecte le principe du moindre privilège et minimise les risques de sécurité.
Autorisations workflow communes
| Type de workflow | Autorisations AWS requises | Description |
|---|---|---|
| Gestion EC2 | ec2:DescribeInstancesec2:StopInstancesec2:StartInstancesec2:ModifyInstanceAttribute | Arrêter, démarrer ou modifier les instances EC2 en réponse aux alertes |
| Messagerie SQS | sqs:SendMessagesqs:GetQueueAttributes | Envoyer des messages aux files d'attente SQS pour traitement en aval |
| Passerelle API | apigateway:GETapigateway:PUT | Rétablir le déploiement ou la configuration du Gateway API |
| Gestionnaire de systèmes | ssm:CreateDocumentssm:DeleteDocumentssm:StartAutomationExecutionssm:GetAutomationExecution | Exécuter les manuels d'exécution automatisés |
| DynamoDB | dynamodb:Querydynamodb:GetItemdynamodb:PutItem | Lire ou écrire dans des tables DynamoDB |
Conseil
Commencez par des permissions de lecture seule (Describe*, Get*, List*), puis ajoutez des permissions d'écriture (Put*, Create*, Delete*) uniquement lorsque cela est nécessaire. Cela permet d'éviter les actions destructives accidentelles lors des tests.
Consultez les exemples de politiques ci-dessous pour obtenir des modèles de politiques IAM complets.
Configurer l'authentification
Choisissez la méthode qui correspond à votre cas d'utilisation dans le tableau ci-dessus :
Un rôle IAM permet à New Relic d'utiliser des informations d'identification temporaires dans votre compte AWS sans nécessiter de clés d'accès permanentes.
Caractéristiques du rôle IAM :
Les identifiants sont renouvelés automatiquement.
L'accès est limité dans le temps par conception.
Toutes les actions sont enregistrées dans AWS CloudTrail
Conforme aux bonnes pratiques de sécurité AWS
Créez le rôle dans AWS
- Connectez-vous à la console AWS IAM
- Accédez à Roles > Create role > Trusted entity type et sélectionnez AWS account > another AWS account
- Dans le champ Account ID, saisissez :
253490767857 - Dans Options, cochez la case Require external ID.
- Dans le champ External ID, saisissez l'ID de votre compte New Relic et cliquez sur Next.
- Vous ne l'avez pas ? Trouvez votre identifiant de compte ici
- Sur la page Add permissions, associez des stratégies en fonction de votre workflow :
- Pour le workflow EC2 : Attachez
AmazonEC2ReadOnlyAccessou créez une stratégie personnalisée - Pour le workflow SQS : Attachez
AmazonSQSFullAccessou limitez-le à des files d’attente spécifiques. - Pour les autres services : consultez la section « Autorisations AWS requises » ci-dessous.
Cliquez sur Next.
Saisissez un nom de rôle :
NewRelicWorkflowAutomationRole(ou le nom de votre choix)Ajoutez éventuellement une description : « Permet à l’automatisation de workflows de New Relic d’effectuer des actions dans AWS », puis cliquez sur Create role.
Vérifiez la politique de fiducie
Après avoir créé le rôle, vérifiez la relation de confiance :
Dans la console IAM, sélectionnez le rôle que vous venez de créer.
Cliquez sur l'onglet Trust relationships
Veuillez vérifier que la politique correspond à cette structure (remplacez
<YOUR_NR_ACCOUNT_ID>par votre identifiant de compte réel) :{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Action": "sts:AssumeRole","Principal": {"AWS": "arn:aws:iam::253490767857:root"},"Condition": {"StringEquals": {"sts:ExternalId": "<YOUR_NR_ACCOUNT_ID>"}}}]}Copiez votre ARN de rôle
Vous aurez besoin de l'ARN du rôle pour configurer le workflow :
Dans la console IAM, sélectionnez votre rôle
Dans la section Summary, repérez le champ ARN
Copiez l'ARN complet ; il ressemble à ceci :
arn:aws:iam::123456789012:role/NewRelicWorkflowAutomationRoleEnregistrez cet ARN en lieu sûr ; vous le collerez directement dans la configuration workflow.
Conseil
Important : Les ARN des rôles doivent être directement intégrés aux entrées workflow ; ne les stockez pas dans le gestionnaire de secrets. Ce ne sont pas des identifiants sensibles ; ce sont des identifiants de ressource.
Le rôle est maintenant configuré. Utilisez l'ARN dans la configuration workflow qui nécessite un accès AWS.
Utilisez cette méthode pour les environnements de test ou lorsque les rôles IAM ne sont pas pris en charge. Les clés d'accès sont des identifiants à longue durée de vie qui nécessitent une rotation manuelle.
Cas d'utilisation :
Environnements de test et de développement
Configurations AWS ne prenant pas en charge l'attribution de rôles entre comptes
Flux d'authentification simplifié
Prudence
Les clés d'accès sont des identifiants à longue durée de vie. Faites-les tourner régulièrement (tous les 90 jours) et limitez les autorisations à ce dont votre workflow a besoin.
Créer l'utilisateur IAM
- Connectez-vous à la console AWS IAM
- Accédez à Users > Create user et saisissez un nom d'utilisateur :
workflow-automation-user(ou le nom de votre choix) - Cliquez sur Next
- Sur la page Set permissions, choisissez Attach policies directly
- Recherchez et sélectionnez les politiques en fonction de votre workflow :
- Pour SQS : Sélectionnez
AmazonSQSFullAccess - Pour EC2 : sélectionnez
AmazonEC2ReadOnlyAccess - Ou créez une politique personnalisée avec des autorisations limitées (recommandé).
Cliquez sur Next, puis sur Create user
Générer des clés d'accès
Dans la liste des utilisateurs, sélectionnez votre utilisateur nouvellement créé.
Cliquez sur l'onglet Security credentials
Dans la section Access keys, choisissez Create access key
Sélectionnez Application running outside AWS et cliquez sur Next.
(Facultatif) Ajouter une tag de description : « Automatisation workflow New Relic »
Choisissez Create access key
Copiez immédiatement les deux identifiants :
Identifiant de la clé d'accès (commence par
AKIA...)Clé d'accès secrète (affichée une seule fois)
Important
AWS n'affiche la clé d'accès secrète qu'une seule fois, lors de la création. Si vous ne l'enregistrez pas, vous devrez générer une nouvelle paire de clés.
Stockez vos identifiants en toute sécurité
Ne jamais intégrer en dur les identifiants AWS dans un workflow. Stockez-les plutôt dans le gestionnaire de secrets de New Relic.
Ouvrez l' explorateur GraphiQL de NerdGraph
Exécutez cette mutation pour enregistrer votre ID de clé d'accès (remplacez les valeurs d'espace réservé) :
mutation {secretsManagementCreateSecret(scope: { type: ACCOUNT, id: "YOUR_NR_ACCOUNT_ID" }namespace: "aws"key: "awsAccessKeyId"description: "AWS Access Key ID for workflow automation"value: "YOUR_AWS_ACCESS_KEY_ID") {key}}Exécutez une autre mutation pour votre clé d'accès secrète :
mutation {secretsManagementCreateSecret(scope: { type: ACCOUNT, id: "YOUR_NR_ACCOUNT_ID" }namespace: "aws"key: "awsSecretAccessKey"description: "AWS Secret Access Key for workflow automation"value: "YOUR_AWS_SECRET_ACCESS_KEY") {key}}Référencez ces secrets dans votre workflow en utilisant la syntaxe suivante :
${{ :secrets:awsAccessKeyId }}Conseil
Utilisez le champ
namespacepour organiser les secrets par environnement (aws-prod,aws-staging) ou par nom d'équipe.
Session Jeton fournit des identifiants temporaires avec expiration automatique.
Cas d'utilisation :
Développement et tests locaux
pipeline CI/CD nécessitant une rotation des identifiants
Environnements soumis à des exigences de conformité en matière d'accès limité dans le temps (généralement de 1 à 12 heures)
Prérequis :
Un rôle IAM existant que vous pouvez assumer
Générer des identifiants temporaires
Ouvrez votre terminal et exécutez cette commande (remplacez par l'ARN de votre rôle) :
bash$aws sts assume-role \>--role-arn "arn:aws:iam::YOUR_ACCOUNT:role/YOUR_ROLE" \>--role-session-name "WorkflowAutomationSession"Si vous utilisez AWS CLI pour la première fois, vous devrez peut-être la configurer avec
aws configureet saisir vos informations d'identification :
AWS renvoie trois valeurs ; vous avez besoin des trois :
{"Credentials": {"AccessKeyId": "ASIAIOSFODNN7EXAMPLE","SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY","SessionToken": "FQoGZXIvYXdzEBk...","Expiration": "2025-01-25T12:00:00Z"}}Stockez les trois identifiants dans le gestionnaire de secrets :
AccessKeyIdstocker commeawsAccessKeyIdSecretAccessKeystocker commeawsSecretAccessKeySessionTokenstocker commeawsSessionTokenPrudence
La session expire (généralement après 1 heure). Programmez un rappel pour les actualiser avant l'horodatage
Expiration, sinon votre workflow échouera avec des erreurs d'authentification.
Utiliser les informations d'identification dans le workflow
Après avoir configuré l'authentification, indiquez vos informations d'identification dans la configuration workflow :
Rôle IAM (recommandé)
Collez directement l'ARN du rôle dans les entrées workflow ; aucun gestionnaire de secrets n'est nécessaire :
awsRoleArn: arn:aws:iam::123456789012:role/NewRelicWorkflowAutomationRoleConseil
Les ARN de rôle sont des identifiants de ressource, et non des informations d'identification sensibles. Ne les stockez pas dans le gestionnaire de secrets ; collez-les directement dans la configuration workflow.
IAM utilisateur ou session jeton
Gestionnaire de secrets de référence pour les clés d'accès :
awsAccessKeyId: ${{ :secrets:awsAccessKeyId }}awsSecretAccessKey: ${{ :secrets:awsSecretAccessKey }}awsSessionToken: ${{ :secrets:awsSessionToken }} # Only for session tokensNew Relic récupère les secrets lors de l'exécution, s'authentifie auprès d'AWS, puis les supprime. Vos identifiants n'apparaissent jamais dans les logs ou l'historique workflow.
Exemples de politiques
Utilisez ces modèles de stratégie IAM complets pour les types workflow courants. Chacune applique le principe du moindre privilège en limitant l'accès à des ressources spécifiques.
Ressources supplémentaires
Pour une documentation complète sur les autorisations AWS :
- Politiques d'intégration AWS gérées: liste complète des autorisations AWS par service, ainsi que des modèles CloudFormation adaptables.
- Configurer l'interrogation d'API AWS: Modèles de configuration supplémentaires
Important
Ces ressources utilisent l'ID de compte 754728514883 pour l'intégration cloud (monitoring). Pour l'automatisation workflow, utilisez toujours 253490767857.
Prochaines étapes
Après avoir configuré les informations d'identification AWS, vous pouvez créer un workflow :
Créer un workflow :
- Parcourez les actions AWS: consultez les opérations AWS disponibles (EC2, SQS, DynamoDB, etc.).
- Utilisez un modèle: déployez un workflow préconfiguré pour les tâches d'automatisation AWS courantes.
- Créer un workflowpersonnalisé: Concevez un workflow adapté à vos besoins spécifiques.
Configurer la notification :
- Configurer les destinations: Configurer les notifications Slack, PagerDuty, par e-mail ou par webhook pour les événements workflow