

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Intégration bidirectionnelle au logiciel AWS Security Hub CSPM Jira
<a name="bidirectionally-integrate-aws-security-hub-with-jira-software"></a>

*Joaquín Rinaudo, Amazon Web Services*

## Résumé
<a name="bidirectionally-integrate-aws-security-hub-with-jira-software-summary"></a>

Cette solution prend en charge une intégration bidirectionnelle entre AWS Security Hub CSPM et Jira. Grâce à cette solution, vous pouvez créer et mettre à jour automatiquement et manuellement des tickets Jira à partir des résultats du Security Hub CSPM. Les équipes de sécurité peuvent utiliser cette intégration pour informer les équipes de développement des problèmes de sécurité graves nécessitant une action.

La solution vous permet de :
+ Sélectionnez les contrôles Security Hub CSPM qui créent ou mettent à jour automatiquement les tickets dans Jira.
+ Dans la console Security Hub CSPM, utilisez les actions personnalisées Security Hub CSPM pour escalader manuellement les tickets dans Jira.
+ Attribuez automatiquement des tickets dans Jira en fonction des Compte AWS balises définies dans AWS Organizations. Si cette balise n'est pas définie, un destinataire par défaut est utilisé.
+ Supprimez automatiquement les résultats du Security Hub CSPM marqués comme faussement positifs ou présentant un risque accepté dans Jira.
+ Fermez automatiquement un ticket Jira lorsque le résultat correspondant est archivé dans Security Hub CSPM.
+ Rouvrez les tickets Jira lorsque les résultats du Security Hub CSPM se reproduisent.

**Flux de travail Jira**

La solution utilise un flux de travail Jira personnalisé qui permet aux développeurs de gérer et de documenter les risques. Au fur et à mesure que le problème progresse dans le flux de travail, l'intégration bidirectionnelle garantit que le statut du ticket Jira et le résultat du Security Hub CSPM sont synchronisés entre les flux de travail des deux services. Ce flux de travail est un dérivé de *SecDevOps Risk Workflow* de Dinis Cruz, sous [licence Apache version 2.0](https://www.apache.org/licenses/LICENSE-2.0). Nous vous recommandons d'ajouter une condition de flux de travail Jira afin que seuls les membres de votre équipe de sécurité puissent modifier le statut du ticket.

![Schéma de flux de travail d'un problème lié à Jira. Vous pouvez résoudre le problème, accepter le risque ou le marquer comme faux positif.](https://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/206b9907-c2a3-4142-90bf-d4eabee534c0/images/10b08232-437e-4b0a-b6a5-b5ef4d415ac5.png)


Pour un exemple de ticket Jira généré automatiquement par cette solution, consultez la section [Informations supplémentaires](#bidirectionally-integrate-aws-security-hub-with-jira-software-additional) de ce modèle.

## Conditions préalables et limitations
<a name="bidirectionally-integrate-aws-security-hub-with-jira-software-prereqs"></a>

**Conditions préalables**
+ Si vous souhaitez déployer cette solution dans un AWS environnement multi-comptes :
  + Votre environnement multi-comptes est actif et géré par AWS Organizations.
  + Security Hub CSPM est activé sur votre. Comptes AWS
  + Dans AWS Organizations, vous avez désigné un compte administrateur Security Hub CSPM.
  + Vous disposez d'un rôle multi-comptes Gestion des identités et des accès AWS (IAM) autorisé à accéder `AWSOrganizationsReadOnlyAccess` au compte de AWS Organizations gestion.
  + (Facultatif) Vous avez marqué votre Comptes AWS nom avec`SecurityContactID`. Cette balise est utilisée pour attribuer des tickets Jira aux contacts de sécurité définis.
+ Si vous souhaitez déployer cette solution en une seule fois Compte AWS :
  + Vous avez un actif Compte AWS.
  + Security Hub CSPM est activé sur votre. Compte AWS
+ Une instance de centre de données Jira
**Important**  
Cette solution prend en charge l'utilisation de Jira Cloud. Cependant, Jira Cloud ne prend pas en charge l'importation de flux de travail XML. Vous devez donc recréer manuellement le flux de travail dans Jira. Vous pouvez trouver les transitions et le statut dans le GitHub référentiel.
+ Autorisations d'administrateur dans Jira
+ L'un des jetons Jira suivants :
  + Pour Jira Enterprise, un jeton d'accès personnel (PAT). Pour plus d'informations, consultez la section [Utilisation de jetons d'accès personnels](https://confluence.atlassian.com/enterprise/using-personal-access-tokens-1026032365.html) (assistance Atlassian).
  + Pour Jira Cloud, un jeton d'API Jira. Pour plus d'informations, consultez [Gérer les jetons d'API](https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/) (support Atlassian).

## Architecture
<a name="bidirectionally-integrate-aws-security-hub-with-jira-software-architecture"></a>

Cette section illustre l'architecture de la solution dans différents scénarios, par exemple lorsque le développeur et l'ingénieur en sécurité décident d'accepter le risque ou de résoudre le problème.

*Scénario 1 : le développeur résout le problème*

1. Security Hub CSPM génère une constatation par rapport à un contrôle de sécurité spécifié, tel que ceux de la norme [AWS Foundational Security Best](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-fsbp.html) Practices.

1. Un CloudWatch événement Amazon associé à la recherche et à l'`CreateJIRA`action déclenche une AWS Lambda fonction.

1. La fonction Lambda utilise son fichier de configuration et le `GeneratorId` champ du résultat pour déterminer si elle doit augmenter le résultat.

1. La fonction Lambda détermine que le résultat doit être augmenté, elle obtient le tag du compte depuis AWS Organizations le `SecurityContactID` compte de gestion. AWS Cet identifiant est associé au développeur et est utilisé comme identifiant de destinataire pour le ticket Jira.

1. La fonction Lambda utilise les informations d'identification enregistrées AWS Secrets Manager pour créer un ticket dans Jira. Jira avertit le développeur.

1. Le développeur répond à la constatation de sécurité sous-jacente et, dans Jira, change le statut du ticket en`TEST FIX`.

1. Security Hub CSPM met à jour le résultat au fur `ARCHIVED` et à mesure qu'un nouvel événement est généré. Cet événement entraîne la fermeture automatique du ticket Jira par la fonction Lambda.

![Schéma d'architecture illustrant l'intégration entre Jira et Security Hub lorsqu'un développeur résout un problème.](https://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/206b9907-c2a3-4142-90bf-d4eabee534c0/images/18d9a6ce-dd38-4d36-a95d-270fce776c30.png)


*Scénario 2 : le développeur décide d'accepter le risque*

1. Security Hub CSPM génère une constatation par rapport à un contrôle de sécurité spécifié, tel que ceux de la norme [AWS Foundational Security Best](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-fsbp.html) Practices.

1. Un CloudWatch événement associé à la découverte et à l'`CreateJIRA`action déclenche une fonction Lambda.

1. La fonction Lambda utilise son fichier de configuration et le `GeneratorId` champ du résultat pour déterminer si elle doit augmenter le résultat.

1. La fonction Lambda détermine que le résultat doit être augmenté, elle obtient le tag du compte depuis AWS Organizations le `SecurityContactID` compte de gestion. AWS Cet identifiant est associé au développeur et est utilisé comme identifiant de destinataire pour le ticket Jira.

1. La fonction Lambda utilise les informations d'identification stockées dans Secrets Manager pour créer un ticket dans Jira. Jira avertit le développeur.

1. Le développeur décide d'accepter le risque et, dans Jira, change le statut du ticket en`AWAITING RISK ACCEPTANCE`.

1. L'ingénieur en sécurité examine la demande et trouve que la justification commerciale est appropriée. L'ingénieur de sécurité change le statut du ticket Jira en`ACCEPTED RISK`. Cela ferme le ticket Jira.

1. Un événement CloudWatch quotidien lance la fonction d'actualisation Lambda, qui identifie les tickets Jira fermés et met à jour les résultats correspondants du Security Hub CSPM sous forme de. `SUPPRESSED`

![Schéma d'architecture illustrant l'intégration de Jira et de Security Hub lorsqu'un développeur accepte le risque d'une découverte.](https://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/206b9907-c2a3-4142-90bf-d4eabee534c0/images/d5a2f946-9c79-4661-96c1-74c813cbf406.png)


## Outils
<a name="bidirectionally-integrate-aws-security-hub-with-jira-software-tools"></a>

**Services AWS**
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)vous aide à configurer les AWS ressources, à les approvisionner rapidement et de manière cohérente, et à les gérer tout au long de leur cycle de vie dans toutes Comptes AWS les régions.
+ [Amazon CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) vous aide à surveiller les événements du système pour vos AWS ressources en utilisant des règles pour faire correspondre les événements et les acheminer vers des fonctions ou des flux.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) est un service de calcul qui vous aide à exécuter du code sans avoir à allouer ni à gérer des serveurs. Il exécute votre code uniquement lorsque cela est nécessaire et évolue automatiquement, de sorte que vous ne payez que pour le temps de calcul que vous utilisez.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)est un service de gestion de comptes qui vous aide à Comptes AWS en regrouper plusieurs au sein d'une organisation que vous créez et gérez de manière centralisée.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) vous aide à remplacer les informations d'identification codées en dur dans votre code, y compris les mots de passe, par un appel d'API à Secrets Manager pour récupérer le secret par programmation.
+ [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html)fournit une vue complète de votre état de sécurité dans AWS. Il vous permet également de vérifier que votre AWS environnement est conforme aux normes et aux meilleures pratiques du secteur de la sécurité.

**Référentiel de code**

Le code de ce modèle est disponible sur GitHub, dans le référentiel [aws-securityhub-jira-software-integration](https://github.com/aws-samples/aws-securityhub-jira-software-integration/). Il inclut l'exemple de code et le flux de travail Jira pour cette solution.

## Épopées
<a name="bidirectionally-integrate-aws-security-hub-with-jira-software-epics"></a>

### Configuration de Jira
<a name="configure-jira"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Importez le flux de travail. | En tant qu'administrateur de Jira, importez le `issue-workflow.xml` fichier dans votre instance de Jira Data Center. Si vous utilisez Jira Cloud, vous devez créer le flux de travail en fonction des `assets/jira-cloud-status.png` fichiers `assets/jira-cloud-transitions.png` et. <br />Les fichiers se trouvent dans le référentiel [aws-securityhub-jira-software-integration](https://github.com/aws-samples/aws-securityhub-jira-software-integration/) dans GitHub. Pour obtenir des instructions, consultez [Utiliser le XML pour créer un flux de travail](https://confluence.atlassian.com/adminjiraserver/using-xml-to-create-a-workflow-938847525.html) (documentation Jira). | Administrateur Jira | 
| Activez et attribuez le flux de travail. | Les flux de travail sont inactifs tant que vous ne les affectez pas à un schéma de flux de travail. Vous attribuez ensuite le schéma de flux de travail à un projet.1. Pour votre projet, assurez-vous d'avoir identifié un schéma de type de problème pour le projet. Vous pouvez créer un nouveau type de problème ou en sélectionner un existant, tel que`Bug`.<br />2. Assignez le flux de travail importé à un schéma de flux de travail conformément aux instructions de la [section Activer un flux de travail](https://support.atlassian.com/jira-cloud-administration/docs/manage-issue-workflows/#Activate-a-workflow) (documentation Jira).<br />3. Assignez le schéma de flux de travail à un projet conformément aux instructions de la [section Associer un schéma de flux de travail à un projet](https://support.atlassian.com/jira-cloud-administration/docs/manage-issue-workflows/#Associate-a-workflow-scheme-with-a-project) (documentation Jira). | Administrateur Jira | 

### Configurer les paramètres de la solution
<a name="set-up-the-solution-parameters"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez les paramètres de la solution. | 1. Dans le dossier **conf**, ouvrez`params_prod.shfile`.<br />2. Fournissez des valeurs pour les paramètres suivants :`ORG_ACCOUNT_ID`— L'identifiant de compte de votre compte AWS Organizations de gestion. La solution lit les balises de compte et attribue des tickets aux contacts de sécurité spécifiques définis dans ces Compte AWS balises.`ORG_ROLE`— Le nom du rôle IAM utilisé pour accéder au compte de AWS Organizations gestion. Ce rôle doit disposer d'`OrganizationsReadOnlyAccess`autorisations.`EXTERNAL_ID`— Paramètre facultatif si vous utilisez un ID externe pour assumer le rôle IAM défini dans`ORG_ROLE`. Pour plus d'informations, consultez [Comment utiliser un identifiant externe](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) (documentation IAM).`JIRA_DEFAULT_ASSIGNEE`— Il s'agit du responsable par défaut de Jira pour tous les problèmes de sécurité. Ce responsable par défaut est utilisé dans le cas où le compte n'est pas correctement étiqueté ou si le rôle ne peut pas être assumé.`JIRA_INSTANCE`— L'adresse HTTPS de votre point de terminaison Jira au format suivant : `team-<team-id>.atlassian.net/``JIRA_PROJECT_KEY`— Le nom de la clé de projet Jira utilisée pour créer des tickets, par exemple `SEC` ou`TEST`. Ce projet doit déjà exister dans Jira. `ISSUE_TYPE`— Le nom du schéma de type de problème attribué au projet dans Jira, tel que `Bug` ou`Security Issue`.`REGIONS`— Liste des Région AWS codes dans lesquels vous souhaitez déployer cette solution, par exemple`eu-west-1`.<br />3. Enregistrez et fermez le fichier de paramètres de solution. | Administrateur système AWS | 
| Identifiez les résultats que vous souhaitez automatiser. | 1. Ouvrez la console [Security Hub CSPM.](https://console.aws.amazon.com/securityhub/)<br />2. **Dans le volet de navigation Security Hub CSPM, sélectionnez Findings.**<br />3. Choisissez le titre de la recherche.<br />4. Choisissez l'ID de recherche. Cela affiche le code JSON complet pour le résultat.<br />5. Dans le JSON, copiez la chaîne dans le `GeneratorId` champ. Cette valeur est au format [ASFF (AWS Security Finding Format).](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-format.html) Par exemple, `aws-foundational-security-best-practices/v/1.0.0/S3.1` correspond aux résultats du contrôle de sécurité *S3.1, le paramètre S3 Block Public Access doit être activé*.<br />6. Répétez ces étapes jusqu'à ce que vous ayez copié toutes les `GeneratorID` valeurs des résultats que vous souhaitez automatiser. |  | 
| Ajoutez les résultats au fichier de configuration. | 1. Dans **src/code**, ouvrez le `config.jsonconfig` fichier.<br />2. Collez les `GeneratorID` valeurs que vous avez récupérées dans l'article précédent dans le `default` paramètre et utilisez des virgules pour séparer chaque identifiant.<br />3. Enregistrez et fermez le fichier de configuration .L'exemple de code suivant montre l'automatisation des `aws-foundational-security-best-practices/v/1.0.0/S3.1` résultats `aws-foundational-security-best-practices/v/1.0.0/SNS.1` et.<pre>{<br />    "Controls" : {<br />        "eu-west-1": [<br />         "arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0/rule/1.22" <br />     ],<br />        "default": [<br />aws-foundational-security-best-practices/v/1.0.0/SNS.1,<br />aws-foundational-security-best-practices/v/1.0.0/S3.1<br />     ]<br />    } <br /> }</pre>Vous pouvez choisir d'automatiser différents résultats pour chacun d'entre eux Région AWS. Une bonne pratique pour éviter la duplication des résultats consiste à sélectionner une seule région pour automatiser la création de contrôles liés à l'IAM. | Administrateur système AWS | 

### Déployez l'intégration
<a name="deploy-the-integration"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Déployez l'intégration. | Dans un terminal de ligne de commande, entrez la commande suivante :<pre>./deploy.sh prod</pre> | Administrateur système AWS | 
| Téléchargez les informations d'identification Jira dans Secrets Manager. | 1. Ouvrez la [console Secrets Manager](https://console.aws.amazon.com/secretsmanager/).<br />2. Sous **Secrets**, choisissez **Store a new secret** (Stocker un nouveau secret).<br />3. Pour **Secret type** (Type de secret), choisissez **Other type of secret** (Autre type de secret).<br />4. Si vous utilisez Jira Enterprise, pour les **paires clé/valeur**, procédez comme suit :Dans la première ligne, entrez `auth` dans la zone clé, puis entrez `token_auth` dans la zone valeur.Ajoutez une deuxième ligne, entrez `token` dans la zone clé, puis entrez votre jeton d'accès personnel dans la zone de valeur.<br />Si vous utilisez Jira Cloud, pour les **paires clé/valeur**, procédez comme suit :Dans la première ligne, entrez `auth` dans la zone clé, puis entrez `basic_auth` dans la zone valeur.Ajoutez une deuxième ligne, entrez `token` dans la zone clé, puis entrez votre jeton d'API dans la zone valeur.Ajoutez une troisième ligne, entrez `email` dans la zone clé, puis entrez votre adresse e-mail dans la zone de valeur.<br />5. Choisissez **Suivant**.<br />6. Dans **Nom du secret**`Jira-Token`, entrez, puis au bas de la page, choisissez **Next**.<br />7. Sur la page **Secret rotation** (Rotation du secret), gardez **Disable automatic rotation** (Désactiver la rotation automatique), puis au bas de la page, choisissez **Next** (Suivant).<br />8. Sur la page **Review** (Vérification), passez en revue vos paramètres, puis choisissez **Store** (Stocker). | Administrateur système AWS | 
| Créez l'action personnalisée Security Hub CSPM. | 1. Pour chacun Région AWS, dans le AWS Command Line Interface (AWS CLI), utilisez la [create-action-target](https://docs.aws.amazon.com/cli/latest/reference/securityhub/create-action-target.html)commande pour créer une action personnalisée Security Hub CSPM nommée. `CreateJiraIssue`<pre>aws securityhub create-action-target --name "CreateJiraIssue" \<br /> --description "Create ticket in JIRA" \<br /> --id "CreateJiraIssue"<br />--region $<aws-region></pre><br />2. Ouvrez la console [Security Hub CSPM.](https://console.aws.amazon.com/securityhub/)<br />3. **Dans le volet de navigation Security Hub CSPM, sélectionnez Findings.**<br />4. Dans la liste des résultats, sélectionnez les résultats que vous souhaitez escalader.<br />5. Dans le menu **Actions**, choisissez`CreateJiraIssue`. | Administrateur système AWS | 

## Ressources connexes
<a name="bidirectionally-integrate-aws-security-hub-with-jira-software-resources"></a>
+ [AWS Connecteur de gestion des services pour Jira Service Management](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/integrations-jiraservicedesk.html)
+ [AWS Norme sur les meilleures pratiques de sécurité fondamentales](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-fsbp.html)

## Informations supplémentaires
<a name="bidirectionally-integrate-aws-security-hub-with-jira-software-additional"></a>

**Exemple de ticket Jira**

Lorsqu'une découverte CSPM spécifiée du Security Hub se produit, cette solution crée automatiquement un ticket Jira. Le billet contient les informations suivantes :
+ **Titre** — Le titre identifie le problème de sécurité dans le format suivant :

  ```
  AWS Security Issue :: <AWS account ID> :: <Security Hub finding title>
  ```
+ **Description** — La section de description du ticket décrit le contrôle de sécurité associé à la découverte, inclut un lien vers la découverte dans la console Security Hub CSPM et fournit une brève description de la manière de gérer le problème de sécurité dans le flux de travail Jira.

Voici un exemple de ticket Jira généré automatiquement.


|  | 
| --- |
| Titre | AWS Problème de sécurité : 012345678912 : : Lambda.1 Les politiques relatives aux fonctions Lambda devraient interdire l'accès public. | 
| --- |--- |
| **Description** | **Quel est le problème ?** Nous avons détecté une faille de sécurité dans le Compte AWS 012345678912 dont vous êtes responsable.<br />Ce contrôle vérifie si la politique AWS Lambda fonctionnelle attachée à la ressource Lambda interdit l'accès public. Si la politique de la fonction Lambda autorise l'accès public, le contrôle échoue.<br /><Link to Security Hub CSPM finding><br />**Que dois-je faire avec le billet ?**+ Accédez au compte et vérifiez la configuration. Confirmez avoir travaillé sur le ticket en le déplaçant vers « Alloué pour correction ». Une fois résolu, déplacé vers le correctif de test afin que la sécurité valide le problème soit résolu.<br />+ Si vous pensez que le risque doit être accepté, déplacez-le vers « En attente d'acceptation du risque ». Cela nécessitera un examen par un ingénieur en sécurité.<br />+ Si vous pensez qu'il s'agit d'un faux positif, remplacez-le par « Marquer comme faux positif ». Cela sera examiné par un ingénieur en sécurité et reopened/closed en conséquence. | 

 