翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Jira ソフトウェア AWS Security Hub との双方向統合
Joaquin Rinaudo、Amazon Web Services
概要
このソリューションは、 AWS Security Hub と Jira の双方向統合をサポートしています。このソリューションを使用すると、Security Hub の検出結果から Jira チケットを自動的に手動で作成および更新できます。セキュリティチームはこのインテグレーションを使用して、対処が必要な重大なセキュリティ検出結果を開発チームに通知できます。
このソリューションは次のことに役立ちます。
Jira でチケットを自動的に作成または更新する Security Hub コントロールを選択します。
Security Hub コンソールで、Security Hub カスタムアクションを使用して Jira のチケットを手動でエスカレーションします。
で定義されている AWS アカウント タグに基づいて、Jira でチケットを自動的に割り当てます AWS Organizations。このタグが定義されていない場合、既定の担当者が使用されます。
Jira で誤検出または許容リスクとしてマークされた Security Hub の検出結果を自動的に非表示にします。
関連する検出結果がSecurity Hub にアーカイブされると、Jira チケットを自動的に閉じます。
Security Hub 検出結果が再発したら、Jira チケットを再度開きます。
Jira ワークフロー
このソリューションでは、開発者がリスクを管理および文書化できるカスタム Jira ワークフローを使用しています。課題がワークフロー内を移動するにつれて、双方向統合により、Jira チケットと Security Hub の検出結果のステータスが両方のサービスのワークフロー間で確実に同期されます。このワークフローは、Dinis Cruz による SecDevOps Risk Workflow の派生であり、Apache License バージョン 2.0

このソリューションによって自動的に生成される Jira チケットの例については、このパターンの「追加情報」セクションを参照してください。
前提条件と制限
前提条件
このソリューションをマルチアカウント AWS 環境にデプロイする場合:
マルチアカウント環境はアクティブで、 によって管理されます AWS Organizations。
Security Hub は で有効になっています AWS アカウント。
で AWS Organizations、Security Hub 管理者アカウントを指定しました。
AWS Organizations 管理アカウントへのアクセス
AWSOrganizationsReadOnlyAccess
許可を持つクロスアカウント AWS Identity and Access Management (IAM) ロールがある。(オプション) に AWS アカウント をタグ付けしました
SecurityContactID
。このタグは、Jira チケットを定義済みのセキュリティ連絡先に割り当てるために使用されます。
このソリューションを 1 つの 内にデプロイする場合 AWS アカウント:
アクティブな AWS アカウントがあります。
Security Hub は で有効になっています AWS アカウント。
Jira データセンターインスタンス
重要
このソリューションは、Jira Cloud の使用をサポートしています。ただし、Jira Cloud は XML ワークフローのインポートをサポートしていないため、Jira でワークフローを手動で再作成する必要があります。移行とステータスは、GitHub リポジトリにあります。
Jira の管理者権限
次の Jira トークンのいずれか:
Jira エンタープライズの場合は、個人アクセストークン (PAT) です。詳細については、「個人アクセストークンの使用
」 (アトラシアンサポート) を参照してください。 Jira クラウドの場合は Jira API トークンです。詳細については、「API トークンの管理
」 (Atlassian サポート) を参照してください。
アーキテクチャ
このセクションでは、開発者とセキュリティエンジニアがリスクを受け入れるか、問題を解決するかを決定したときなど、さまざまなシナリオにおけるソリューションのアーキテクチャを示しています。
シナリオ 1: 開発者が問題に対処する
Security Hub は、 AWS Foundational Security Best Practices 標準のものなど、指定されたセキュリティコントロールに対して検出結果を生成します。
検出結果とアクションに関連付けられた Amazon CloudWatch イベントが AWS Lambda 関数
CreateJIRA
を開始します。Lambda 関数は、
GeneratorId
設定ファイルと結果のフィールドを使用して、検出結果をエスカレートする必要があるかどうかを評価します。Lambda 関数は、結果をエスカレーションする必要があると判断し、 AWS 管理
SecurityContactID
アカウントの AWS Organizations からアカウントタグを取得します。この ID は開発者に関連付けられ、Jira チケットの担当者 ID として使用されます。Lambda 関数は、 に保存されている認証情報 AWS Secrets Manager を使用して Jira でチケットを作成します。Jira は開発者に通知します。
開発者は基礎となるセキュリティ検出結果に対処し、Jira ではチケットのステータスを
TEST FIX
に変更します。Security Hub は検出結果を
ARCHIVED
として更新し、新しいイベントが生成されます。このイベントにより、Lambda 関数は Jira チケットを自動的に閉じます。

シナリオ 2: 開発者がリスクを受け入れることを決定
Security Hub は、 AWS Foundational Security Best Practices 標準のものなど、指定されたセキュリティコントロールに対して検出結果を生成します。
検出結果と
CreateJIRA
アクションに関連付けられた CloudWatch イベントは、Lambda 関数を開始します。Lambda 関数は、
GeneratorId
設定ファイルと結果のフィールドを使用して、検出結果をエスカレートする必要があるかどうかを評価します。Lambda 関数は、結果をエスカレーションする必要があると判断し、 AWS 管理
SecurityContactID
アカウントの AWS Organizations からアカウントタグを取得します。この ID は開発者に関連付けられ、Jira チケットの担当者 ID として使用されます。Lambda 関数は、Secrets Manager に保存されている認証情報を使用して Jira にチケットを作成します。Jira は開発者に通知します。
開発者はリスクを受け入れることを決定し、Jira ではチケットのステータスを
AWAITING RISK ACCEPTANCE
に変更します。セキュリティエンジニアはリクエストを検討し、ビジネス上の正当性が適切であると判断します。セキュリティエンジニアは Jira チケットのステータスを
ACCEPTED RISK
に変更します。これにより Jira チケットは終了します。CloudWatch の日次イベントは、閉じた Jira チケットを識別し、関連する Security Hub の検出結果を として更新する更新 Lambda 関数を開始します
SUPPRESSED
。

ツール
AWS のサービス
AWS CloudFormation は、 AWS リソースをセットアップし、迅速かつ一貫してプロビジョニングし、 AWS アカウント および リージョン全体のライフサイクルを通じてリソースを管理するのに役立ちます。
Amazon CloudWatch Events は、ルールを使用してイベントを照合し、関数またはストリームにルーティングすることで、 AWS リソースのシステムイベントをモニタリングするのに役立ちます。
AWS Lambda は、サーバーのプロビジョニングや管理を行うことなくコードを実行できるコンピューティングサービスです。必要に応じてコードを実行し、自動的にスケーリングするため、課金は実際に使用したコンピューティング時間に対してのみ発生します。
AWS Organizations は、作成して一元管理する AWS アカウント 組織に複数の を統合するのに役立つアカウント管理サービスです。
AWS Secrets Manager を使用すると、コード内のハードコードされた認証情報 (パスワードを含む) を Secrets Manager への API コールで置き換えて、プログラムでシークレットを取得することができます。
AWS Security Hub は、 のセキュリティ状態の包括的なビューを提供します AWS。また、セキュリティ業界標準とベストプラクティスに照らして AWS 環境を確認するのにも役立ちます。
コードリポジトリ
このパターンのコードは、GitHub 内の「aws-securityhub-jira-ソフトウェア統合
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
ワークフローをインポートします。 | Jira の管理者として、 ファイルは、GitHub の aws-securityhub-jira-software-integration | Jira 管理者 |
ワークフローを有効化して割り当てます。 | ワークフローは、ワークフロースキームに割り当てるまで非アクティブです。次に、そのワークフロースキームをプロジェクトに割り当てます。
| Jira 管理者 |
タスク | 説明 | 必要なスキル |
---|---|---|
ソリューションパラメータを設定します。 |
| AWS システム管理者 |
自動化したい検出結果を特定してください。 |
| |
検出結果を設定ファイルに追加します。 |
次のコード例は、
注記それぞれに異なる検出結果を自動化することを選択できます AWS リージョン。結果の重複を防ぐには、単一のリージョンを選択して IAM に関連するコントロールの作成を自動化することをお勧めします。 | AWS システム管理者 |
タスク | 説明 | 必要なスキル |
---|---|---|
統合をデプロイします。 | コマンドライン端末で、次のコマンドを入力します。
| AWS システム管理者 |
Jira 認証情報を Secrets Manager にアップロードします。 |
| AWS システム管理者 |
セキュリティハブカスタムアクションを作成します。 |
| AWS システム管理者 |
関連リソース
追加情報
Jira チケットの例
指定した Security Hub の検出結果が発生すると、このソリューションは自動的に Jira チケットを作成します。チケットには、次の情報が含まれます。
タイトル — タイトルは次の形式でセキュリティ上の問題を識別します。
AWS Security Issue :: <AWS account ID> :: <Security Hub finding title>
説明 — チケットの説明セクションには、検出結果に関連するセキュリティコントロールについての説明と、Security Hub コンソールの検出結果へのリンク、および Jira ワークフローにおけるセキュリティ問題の処理方法に関する簡単な説明が記載されています。
以下は、自動生成された Jira チケットの例です。
タイトル | AWS セキュリティの問題 :: 012345678912 :: Lambda.1 Lambda 関数ポリシーはパブリックアクセスを禁止する必要があります。 |
---|---|
説明 | 問題は何か? 担当する AWS アカウント 012345678912 内でセキュリティ上の検出結果が検出されました。 このコントロールは、Lambda リソースにアタッチされた AWS Lambda 関数ポリシーがパブリックアクセスを禁止しているかどうかをチェックします。Lambda 関数ポリシーがパブリックアクセスを許可している場合、コントロールは失敗します。 <セキュリティハブの検出結果へのリンク> チケットはどうする必要がありますか?
|