GitHub および Azure DevOps で pull request 注釈を有効にする
DevOps セキュリティは、Pull Requests (PR) でセキュリティの調査結果を注釈として公開します。 セキュリティ オペレーターは、Microsoft Defender for Cloud で PR 注釈を有効にすることができます。 公開された問題は、開発者が修復できます。 このプロセスにより、潜在的なセキュリティの脆弱性や構成の誤りを防ぎ、運用段階に入る前に修正できます。 DevOps セキュリティは、ファイル全体で検出されたすべての脆弱性ではなく、pull request 時に発生した相違点内の脆弱性に注釈を付けます。 開発者はソース コード管理システムで注釈を確認でき、セキュリティ オペレーターは Microsoft Defender for Cloud で未解決の調査結果を確認できます。
Microsoft Defender for Cloud を使用すると、Azure DevOps で PR 注釈を構成できます。 GitHub Advanced Security のユーザーである場合は、GitHub で PR 注釈を取得できます。
pull request 注釈とは
pull request 注釈は、GitHub または Azure DevOps の pull request に追加されるコメントです。 これらの注釈は、pull request で行われたコードの変更と特定されたセキュリティの問題に関するフィードバックを提供し、レビュー担当者が加えられた変更を把握するのに役立ちます。
注釈は、リポジトリへのアクセス権を持つユーザーが追加でき、変更を提案したり、質問したり、コードに関するフィードバックを提供したりするのに使用できます。 注釈を使用して、コードがメイン ブランチにマージされる前に修正する必要がある問題やバグを追跡することもできます。 Defender for Cloud の DevOps セキュリティでは、注釈を使用してセキュリティの結果を表示します。
前提条件
GitHub の場合:
- Azure アカウント。 Azure アカウントをまだお持ちではない場合は、今すぐ Azure 無料アカウントを作成できます。
- GitHub Advanced Security のユーザーになりましょう。
- GitHub リポジトリを Microsoft Defender for Cloud に接続します。
- Microsoft Security DevOps GitHub アクションを構成します。
Azure DevOps の場合:
- Azure アカウント。 Azure アカウントをまだお持ちではない場合は、今すぐ Azure 無料アカウントを作成できます。
- Azure サブスクリプションへの書き込みアクセス権 (所有者/投稿者) を持っている。
- Azure DevOps リポジトリを Microsoft Defender for Cloud に接続します。
- Microsoft Security DevOps の Azure DevOps 拡張機能を構成します。
GitHub で pull request 注釈を有効にする
GitHub で pull request 注釈を有効にすると、開発者は PR をメイン ブランチに直接作成する際に、セキュリティに関する問題を確認できるようになります。
GitHub で pull request 注釈を有効にするには:
GitHub に移動し、サインインします。
Defender for Cloud にオンボードしたリポジトリを選択します。
Your repository's home page
>.github/workflows に移動します。msdevopssec.yml を選択します。これは、prerequisites で作成されたものです。
[編集] を選択します。
トリガー セクションを見つけて、次の内容に更新します。
# Triggers the workflow on push or pull request events but only for the main branch pull_request: branches: ["main"]
サンプル リポジトリを表示することもできます。
(省略可能) トリガー セクションの下にブランチを入力することで、実行するブランチを選択できます。 すべてのブランチを含める場合は、ブランチ リストを含む行を削除します。
[Start commit](コミットの開始) を選択します。
[変更点のコミット] を選択します。
スキャナーによって検出された問題は、pull request の [ファイルの変更] セクションに表示されます。
- テストで使用 - アラートが運用コードにありません。
Azure DevOps で pull request 注釈を有効にする
Azure DevOps で pull request 注釈を有効にすると、開発者は PR をメイン ブランチに直接作成する際に、セキュリティに関する問題を確認できるようになります。
CI ビルドのビルド検証ポリシーを有効にする
pull request 注釈を有効にする前に、メイン ブランチで CI ビルドのビルド検証ポリシーが有効になっている必要があります。
CI ビルドのビルド検証ポリシーを有効にするには:
Azure DevOps プロジェクトにサインインします。
[プロジェクト設定]>[リポジトリ] に移動します。
pull request を有効にするリポジトリを選択します。
[ポリシー] を選択します。
[ブランチ ポリシー]>[メイン ブランチ] に移動します。
[ビルドの検証] セクションを見つけます。
リポジトリのビルド検証が [オン] に切り替っていることを確認します。
[保存] を選択します。
これらのステップを完了したら、以前に作成したビルド パイプラインを選択し、その設定をニーズに合わせてカスタマイズできます。
pull request 注釈を有効にする
Azure DevOps で pull request 注釈を有効にするには:
Azure portal にサインインします。
[Defender for Cloud]>[DevOps セキュリティ] の順に移動します。
pull request 注釈を有効にするために、関連するすべてのリポジトリを選択します。
[リソースの管理] を選択します。
pull request 注釈を [オン] に切り替えます。
(省略可能) ドロップダウン メニューからカテゴリを選択します。
Note
現在サポートされているのは、Infrastructure-as-Code の構成ミス (ARM、Bicep、Terraform、CloudFormation、Dockerfiles、Helm Charts など) の結果のみです。
(省略可能) ドロップダウン メニューから重大度レベルを選択します。
[保存] を選択します。
pull request のすべての注釈は今後、構成に基づいて表示されるようになります。
Azure DevOps でプロジェクトと組織の pull request 注釈を有効にするには:
これは Microsoft が公開した Update Azure DevOps Resource API を呼び出すことによって、プログラムで実行できます。 Security Resource Provider。
API 情報:
Http メソッド: PATCH URL:
- Azure DevOps プロジェクトの更新:
https://management.azure.com/subscriptions/<subId>/resourcegroups/<resourceGroupName>/providers/Microsoft.Security/securityConnectors/<connectorName>/devops/default/azureDevOpsOrgs/<adoOrgName>/projects/<adoProjectName>?api-version=2023-09-01-preview
- Azure DevOps 組織の更新]:
https://management.azure.com/subscriptions/<subId>/resourcegroups/<resourceGroupName>/providers/Microsoft.Security/securityConnectors/<connectorName>/devops/default/azureDevOpsOrgs/<adoOrgName>?api-version=2023-09-01-preview
要求本文:
{
"properties": {
"actionableRemediation": {
"state": <ActionableRemediationState>,
"categoryConfigurations":[
{"category": <Category>,"minimumSeverityLevel": <Severity>}
]
}
}
}
パラメーター / 使用可能なオプション
<ActionableRemediationState>
説明: PR 注釈構成の状態 オプション: 有効 | 無効
<Category>
説明: pull request 時に注釈を付ける結果のカテゴリ。
オプション: IaC | コード | 成果物 | 依存関係 | コンテナー 注: 現時点では、IaC のみサポートされています
<Severity>
説明: PR 注釈の作成時に考慮される結果の最小重要度。
オプション: 高 | 中 | 低
az cli ツールを使用して、最小重要度が [中] の IaC カテゴリに対して Azure DevOps 組織の PR 注釈を有効にする例。
組織の更新:
az --method patch --uri https://management.azure.com/subscriptions/4383331f-878a-426f-822d-530fb00e440e/resourcegroups/myrg/providers/Microsoft.Security/securityConnectors/myconnector/devops/default/azureDevOpsOrgs/testOrg?api-version=2023-09-01-preview --body "{'properties':{'actionableRemediation':{'state':'Enabled','categoryConfigurations':[{'category':'IaC','minimumSeverityLevel':'Medium'}]}}}
az cli ツールを使用して、最小重要度が [高] の IaC カテゴリに対して Azure DevOps プロジェクトの PR 注釈を有効にする例。
プロジェクトの更新:
az --method patch --uri https://management.azure.com/subscriptions/4383331f-878a-426f-822d-530fb00e440e/resourcegroups/myrg/providers/Microsoft.Security/securityConnectors/myconnector/devops/default/azureDevOpsOrgs/testOrg/projects/testProject?api-version=2023-09-01-preview --body "{'properties':{'actionableRemediation':{'state':'Enabled','categoryConfigurations':[{'category':'IaC','minimumSeverityLevel':'High'}]}}}"
詳細情報
- DevOps セキュリティの詳細情報。
- コードとしてのインフラストラクチャの DevOps セキュリティの詳細情報。
次のステップ
DevOps セキュリティについてさらに学習します。