

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AWS Security Hub CSPM 與 Jira 軟體雙向整合
<a name="bidirectionally-integrate-aws-security-hub-with-jira-software"></a>

*Joaquin Rinaudo，Amazon Web Services*

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

此解決方案支援 AWS Security Hub CSPM 和 Jira 之間的雙向整合。使用此解決方案，您可以自動和手動從 Security Hub CSPM 調查結果建立和更新 Jira 票證。安全團隊可以使用此整合，向開發人員團隊通知需要採取動作的嚴重安全問題清單。

解決方案可讓您：
+ 選取在 Jira 中自動建立或更新票證的 Security Hub CSPM 控制項。
+ 在 Security Hub CSPM 主控台中，使用 Security Hub CSPM 自訂動作在 Jira 中手動呈報票證。
+ 根據 中定義的 AWS 帳戶 標籤，在 Jira 中自動指派票證 AWS Organizations。如果未定義此標籤，則會使用預設指派者。
+ 在 Jira 中自動隱藏標記為誤報或接受風險的 Security Hub CSPM 調查結果。
+ 在 Security Hub CSPM 中封存 Jira 票證的相關調查結果時自動關閉 Jira 票證。
+ 當 Security Hub CSPM 問題清單再次發生時，重新開啟 Jira 票證。

**Jira 工作流程**

解決方案使用自訂 Jira 工作流程，可讓開發人員管理和記錄風險。當問題通過工作流程時，雙向整合可確保 Jira 票證和 Security Hub CSPM 調查結果的狀態在兩個服務中的工作流程之間同步。此工作流程是 Dinis Cruz 授予 Apache License 2.0 版授權的 *SecDevOps 風險工作流程*的衍生產品。 [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)我們建議新增 Jira 工作流程條件，以便只有安全團隊的成員可以變更票證狀態。

![\[Jira 問題的工作流程圖。您可以修正問題、接受風險，或將其標記為誤報。\]](http://docs.aws.amazon.com/zh_tw/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 支援）。

## Architecture
<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. 與調查結果相關聯的 Amazon CloudWatch 事件，而 `CreateJIRA`動作會啟動 AWS Lambda 函數。

1. Lambda 函數會使用其組態檔案和調查結果`GeneratorId`的 欄位來評估是否應呈報調查結果。

1. Lambda 函數會判斷應該呈報的問題清單，並在 AWS Organizations AWS 管理`SecurityContactID`帳戶中從 取得帳戶標籤。此 ID 與開發人員相關聯，並用作 Jira 票證的受指派者 ID。

1. Lambda 函數會使用存放在 中的登入資料 AWS Secrets Manager ，在 Jira 中建立票證。Jira 通知開發人員。

1. 開發人員處理基礎安全調查結果，並在 Jira 中將票證的狀態變更為 `TEST FIX`。

1. Security Hub CSPM 會將問題清單更新為 `ARCHIVED`，並產生新的事件。此事件會導致 Lambda 函數自動關閉 Jira 票證。

![\[當開發人員修正問題時，顯示 Jira 和 Security Hub 整合的架構圖表。\]](http://docs.aws.amazon.com/zh_tw/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. 與調查結果相關聯的 CloudWatch 事件和動作會`CreateJIRA`啟動 Lambda 函數。

1. Lambda 函數會使用其組態檔案和調查結果`GeneratorId`的 欄位來評估是否應呈報調查結果。

1. Lambda 函數會判斷應該呈報的問題清單，並在 AWS Organizations AWS 管理`SecurityContactID`帳戶中從 取得帳戶標籤。此 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_tw/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 Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) 可協助您監控 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](https://github.com/aws-samples/aws-securityhub-jira-software-integration/) 儲存庫的 GitHub 上取得。它包含此解決方案的範例程式碼和 Jira 工作流程。

## 史詩
<a name="bidirectionally-integrate-aws-security-hub-with-jira-software-epics"></a>

### 設定 Jira
<a name="configure-jira"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 匯入工作流程。 | 身為 Jira 中的管理員，請將 `issue-workflow.xml` 檔案匯入您的 Jira 資料中心執行個體。如果您使用 Jira Cloud，則需要根據 `assets/jira-cloud-transitions.png`和 `assets/jira-cloud-status.png` 檔案建立工作流程。您可以在 GitHub 的 [aws-securityhub-jira-software-integration](https://github.com/aws-samples/aws-securityhub-jira-software-integration/) 儲存庫中找到檔案。如需說明，請參閱[使用 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_tw/prescriptive-guidance/latest/patterns/bidirectionally-integrate-aws-security-hub-with-jira-software.html) | Jira 管理員 | 

### 設定解決方案參數
<a name="set-up-the-solution-parameters"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 設定解決方案參數。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/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_tw/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_tw/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>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 部署整合。 | 在命令列終端機中，輸入下列命令：<pre>./deploy.sh prod</pre> | AWS 系統管理員 | 
| 將 Jira 登入資料上傳至 Secrets Manager。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/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_tw/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 Service Management 的服務管理連接器](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 票證的範例。


|  | 
| --- |
| Title | AWS 安全問題：：012345678912：：Lambda.1 Lambda 函數政策應禁止公開存取。 | 
| --- |--- |
| **Description** | **問題是什麼？** 我們在您負責的 AWS 帳戶 012345678912 中偵測到安全調查結果。此控制項會檢查連接至 Lambda 資源的 AWS Lambda 函數政策是否禁止公開存取。如果 Lambda 函數政策允許公開存取，則控制項會失敗。<連結至 Security Hub CSPM 調查結果>**我需要如何處理票證？**存取帳戶並驗證組態。將票證移至「已配置修正」，以確認處理票證。修正後，移至測試修正，讓安全性驗證問題已解決。如果您認為應該接受風險，請將其移至「等待風險接受」。這需要由安全工程師審核。如果您認為是誤報，請將其轉換為「標記為誤報」。這將由安全工程師審核，並相應地重新開啟/關閉。 | 

 