

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 与 Jira 软件双向集 AWS Security Hub CSPM 成
<a name="bidirectionally-integrate-aws-security-hub-with-jira-software"></a>

*Joaquin Rinaudo，Amazon Web Services*

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

此解决方案支持 AWS Security Hub CSPM 和 Jira 之间的双向集成。使用此解决方案，您可以根据 Security Hub CSPM 的调查结果自动手动创建和更新 Jira 票证。安全团队可以使用此集成通知开发团队需要采取行动的严重安全调查发现。

此解决方案允许您：
+ 选择哪个 Security Hub CSPM 控件在 Jira 中自动创建或更新票证。
+ 在 Security Hub CSPM 控制台中，使用 Security Hub CSPM 自定义操作在 Jira 中手动升级工单。
+ 根据中定义的 AWS 账户 标签在 Jira 中自动分配工单。 AWS Organizations如未定义此标签，则使用默认受让人。
+ 自动禁用 Jira 中标记为误报或可接受风险的 Security Hub CSPM 发现。
+ 当 Jira 票证的相关发现存档在 Security Hub CSPM 中时，自动将其关闭。
+ 当 Security Hub CSPM 发现再次出现时，请重新打开 Jira 工单。

**Jira 工作流**

此解决方案使用自定义 Jira 工作流，允许开发人员管理和记录风险。随着事务在工作流程中的进展，双向集成可确保 Jira 工单和 Security Hub CSPM 查找结果的状态在这两个服务的工作流程中保持同步。该工作流程是 Dinis Cruz 的《*SecDevOps 风险工作流程*》的衍生作品，在 [Apache 许可版本 2.0](https://www.apache.org/licenses/LICENSE-2.0) 下获得许可。我们建议添加 Jira 工作流条件，以便仅您的安全团队成员才能更改票证状态。

![\[Jira 问题的工作流图。您可修复问题、接受风险或将其标记为误报。\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/206b9907-c2a3-4142-90bf-d4eabee534c0/images/10b08232-437e-4b0a-b6a5-b5ef4d415ac5.png)


有关此解决方案自动生成的 Jira 票证的示例，请参阅此模式的[其他信息](#bidirectionally-integrate-aws-security-hub-with-jira-software-additional)部分。

## 先决条件和限制
<a name="bidirectionally-integrate-aws-security-hub-with-jira-software-prereqs"></a>

**先决条件**
+ 如果您想在多账户 AWS 环境中部署此解决方案，请执行以下操作：
  + 您的多账户环境处于活动状态，由其管理。 AWS Organizations
  + 您的 Security Hub CSPM 已启用。 AWS 账户
  + 在中 AWS Organizations，您指定了一个 Security Hub CSPM 管理员帐户。
  + 您的跨账户 AWS Identity and Access Management (IAM) 角色拥有 AWS Organizations 管理账户的`AWSOrganizationsReadOnlyAccess`权限。
  + （可选）您已将自己标记 AWS 账户 为`SecurityContactID`。此标签用于将 Jira 票证分配至定义的安全联系人。
+ 如果您想在单个解决方案中部署此解决方案，请执行 AWS 账户以下操作：
  + 您已经有一个活动 AWS 账户。
  + 您的 Security Hub CSPM 已启用。 AWS 账户
+ Jira 数据中心实例
**重要**  
此解决方案支持使用 Jira Cloud。但是，Jira Cloud 不支持导入 XML 工作流，因此需要在 Jira 中手动重新创建工作流。你可以在 GitHub 存储库中找到过渡和状态。
+ Jira 中的管理员权限
+ 以下 Jira 令牌之一：
  + 对于 Jira Enterprise 来说，这是个人访问令牌 (PAT)。有关更多信息，请参阅[使用个人访问令牌](https://confluence.atlassian.com/enterprise/using-personal-access-tokens-1026032365.html)（Atlassian 支持）。
  + 对于 Jira Cloud 来说，这是 Jira API 令牌。有关更多信息，请参阅[管理 API 令牌](https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/)（Atlassian 支持）。

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

本节说明了各种场景下的解决方案架构，例如当开发人员和安全工程师决定接受风险或决定解决问题时。

*场景 1：开发人员解决问题*

1. Security Hub CSPM 针对指定的安全控制（例如[AWS 基础安全最佳实践标准中的安全](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-fsbp.html)控制）生成调查结果。

1. 与调查结果和`CreateJIRA`操作关联的 Amazon CloudWatch 事件会启动一个 AWS Lambda 函数。

1. Lambda 函数使用其配置文件和调查发现的 `GeneratorId` 字段来评估是否应升级调查发现。

1. Lambda 函数决定应上报调查结果，它从管理`SecurityContactID`账户 AWS Organizations 中获取账户标签。 AWS 此 ID 与开发人员关联，用作 Jira 票证的受让人 ID。

1. Lambda 函数使用存储在中的凭证在 J AWS Secrets Manager ira 中创建票证。Jira 会通知开发人员。

1. 开发人员解决了底层的安全调查发现，并在 Jira 中将票证状态更改为 `TEST FIX`。

1. Security Hub CSPM 将调查结果更新为`ARCHIVED`，并生成了一个新事件。此事件将导致 Lambda 函数自动关闭 Jira 票证。

![\[架构图显示了开发人员修复问题时的 Jira 和 Security Hub 集成。\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/206b9907-c2a3-4142-90bf-d4eabee534c0/images/18d9a6ce-dd38-4d36-a95d-270fce776c30.png)


*场景 2：开发人员决定接受风险*

1. Security Hub CSPM 针对指定的安全控制（例如[AWS 基础安全最佳实践标准中的安全](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-fsbp.html)控制）生成调查结果。

1. 与发现和`CreateJIRA`操作关联 CloudWatch 的事件会启动 Lambda 函数。

1. Lambda 函数使用其配置文件和调查发现的 `GeneratorId` 字段来评估是否应升级调查发现。

1. Lambda 函数决定应上报调查结果，它从管理`SecurityContactID`账户 AWS Organizations 中获取账户标签。 AWS 此 ID 与开发人员关联，用作 Jira 票证的受让人 ID。

1. Lambda 函数使用存储在 Secrets Manager 中的凭证在 Jira 中创建票证。Jira 会通知开发人员。

1. 开发人员决定接受风险，并在 Jira 中将票证的状态更改为 `AWAITING RISK ACCEPTANCE`。

1. 安全工程师审查请求并找到适当业务理由。安全工程师将 Jira 票证的状态更改为 `ACCEPTED RISK`。这将关闭 Jira 票证。

1.  CloudWatch 每日事件会启动刷新 Lambda 函数，该函数可识别已关闭的 Jira 票证，并将其相关的 Security Hub CSPM 发现结果更新为。`SUPPRESSED`

![\[架构图显示了开发人员接受调查发现风险时的 Jira 和 Security Hub 集成。\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/206b9907-c2a3-4142-90bf-d4eabee534c0/images/d5a2f946-9c79-4661-96c1-74c813cbf406.png)


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

**AWS 服务**
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)帮助您设置 AWS 资源，快速一致地配置资源，并在资源的整个生命周期中跨地区对其 AWS 账户 进行管理。
+ [Amazon CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) Events 使用规则匹配事件并将其路由到函数或流，从而帮助您监控 AWS 资源的系统事件。
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) 是一项计算服务，可帮助您运行代码，无需预调配或管理服务器。它只在需要时运行您的代码，并自动进行扩展，因此您只需为使用的计算时间付费。
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)是一项账户管理服务，可帮助您将多个账户整合 AWS 账户 到一个由您创建和集中管理的组织中。
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) 可帮助您将代码中的硬编码凭证（包括密码）替换为对 Secrets Manager 进行的 API 调用，以便以编程方式检索此密钥。
+ [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html)提供了您的安全状态的全面视图 AWS。它还可以帮助您根据安全行业标准和最佳实践检查您的 AWS 环境。

**代码存储库**

此模式的代码可在 [aws-securityhub-jira-software-integration GitHub 存储库中找到](https://github.com/aws-samples/aws-securityhub-jira-software-integration/)。它包括该解决方案的示例代码与 Jira 工作流。

## 操作说明
<a name="bidirectionally-integrate-aws-security-hub-with-jira-software-epics"></a>

### 配置 Jira
<a name="configure-jira"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 导入工作流。 | 作为 Jira 的管理员，将 `issue-workflow.xml` 文件导入至 Jira 数据中心实例。如果您使用 Jira Cloud，则需要根据 `assets/jira-cloud-transitions.png` 和 `assets/jira-cloud-status.png` 文件创建工作流。文件可以在中的[aws-securityhub-jira-software集成存储库中](https://github.com/aws-samples/aws-securityhub-jira-software-integration/) GitHub找到。有关说明，请参阅[使用 XML 创建工作流](https://confluence.atlassian.com/adminjiraserver/using-xml-to-create-a-workflow-938847525.html)（Jira 文档）。 | Jira 管理员 | 
| 激活和分配工作流。 | 在您将工作流分配至工作流方案之前，工作流处于非活动状态。然后，将工作流方案分配至项目。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/bidirectionally-integrate-aws-security-hub-with-jira-software.html) | Jira 管理员 | 

### 设置解决方案参数
<a name="set-up-the-solution-parameters"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 配置解决方案参数。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/bidirectionally-integrate-aws-security-hub-with-jira-software.html) | AWS 系统管理员 | 
| 确定要自动执行的调查发现。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/bidirectionally-integrate-aws-security-hub-with-jira-software.html) |  | 
| 将调查发现添加到配置文件中。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/bidirectionally-integrate-aws-security-hub-with-jira-software.html)以下代码示例显示了自动执行 `aws-foundational-security-best-practices/v/1.0.0/SNS.1` 和 `aws-foundational-security-best-practices/v/1.0.0/S3.1` 调查发现。<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>您可以选择为每种发现自动执行不同的结果 AWS 区域。为了防止重复的调查发现，可选择一个区域来自动创建与 IAM 相关的控件。 | AWS 系统管理员 | 

### 部署集成
<a name="deploy-the-integration"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 部署集成。 | 在命令行终端中，输入以下命令：<pre>./deploy.sh prod</pre> | AWS 系统管理员 | 
| 将 Jira 凭证上传至 Secrets Manager。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/bidirectionally-integrate-aws-security-hub-with-jira-software.html) | AWS 系统管理员 | 
| 创建 Security Hub CSPM 自定义操作。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/bidirectionally-integrate-aws-security-hub-with-jira-software.html) | AWS 系统管理员 | 

## 相关资源
<a name="bidirectionally-integrate-aws-security-hub-with-jira-software-resources"></a>
+ [AWS 适用于 Jira 服务管理的服务管理连接器](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/integrations-jiraservicedesk.html)
+ [AWS 基础安全最佳实践标准](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-fsbp.html)

## 附加信息
<a name="bidirectionally-integrate-aws-security-hub-with-jira-software-additional"></a>

**Jira 票证示例**

当出现指定的 Security Hub CSPM 发现时，此解决方案会自动创建一个 Jira 票证。该票证包含以下信息：
+ **标题** – 标题采用以下格式标识安全问题：

  ```
  AWS Security Issue :: <AWS account ID> :: <Security Hub finding title>
  ```
+ **描述** — 票证的描述部分描述了与调查结果相关的安全控制，包括指向 Security Hub CSPM 控制台中发现结果的链接，并简要描述了如何处理 Jira 工作流程中的安全问题。

以下是一个自动生成的 Jira 票证示例。


|  | 
| --- |
| 标题 | AWS 安全问题:: 012345678912:: Lambda.1 Lambda 函数策略应禁止公开访问。 | 
| --- |--- |
| **描述** | **问题在哪里？** 我们在您负责的 AWS 账户 012345678912 中检测到安全调查发现。此控件检查附加到 Lambda 资源的 AWS Lambda 函数策略是否禁止公开访问。如果 Lambda 函数策略允许公有访问，则控件失败。<Link to Security Hub CSPM finding>**我需要怎么处理该票证？**访问此账户并验证配置。将其移至已分配待修复，以确认正在处理票证。修复后，移至测试修复，以便 Security 可验证问题是否得到解决。如果您认为应该接受风险，请将其移至等待风险接受。这将需要安全工程师审查。如果您认为是误报，请将其转换为标记为误报。这将由安全工程师进行 reopened/closed 相应的审查。 | 

 