This product is not supported for your selected
Datadog site. (
).
以下の手順に従って、Code Security の Infrastructure as Code (IaC) Security を有効にします。IaC Security は、GitHub、GitLab、または Azure DevOps リポジトリに保存されている複数の IaC 構成をサポートしています。
GitHub 統合をインストールする
GitHub リポジトリを接続して PR コメントを有効にするには、プルリクエストコメントのセットアップ手順を参照してください。
リポジトリで IaC Security を有効にする
GitHub 統合をセットアップした後、リポジトリで IaC Security を有効にします。
- Code Security 設定ページで、Activate scanning for your repositories セクションを展開します。
- Select your source code management provider で、GitHub を選択します。
- Select where your scans should run で、Datadog を選択します。
- Connect your GitHub repositories で、次のいずれかを行います。
- 新しい GitHub アカウントを接続するには、Add GitHub Account をクリックします。
- 既存のアカウントで IaC Security を有効にするには、Select repositories をクリックします。Code Security がすでに有効になっている場合は、Edit をクリックします。
- IaC Security を有効にするには、次のいずれかを行います。
- すべてのリポジトリで有効にするには、Enable Infrastructure as Code Scanning (IaC) を ON の位置に切り替えます。
- 単一のリポジトリで有効にするには、そのリポジトリの IaC スイッチを ON に切り替えます。
GitLab 統合をインストールする
GitLab リポジトリを接続して PR コメントを有効にするには、GitLab ソースコードのセットアップ手順を参照してください。
リポジトリで IaC Security を有効にする
GitLab 統合をセットアップした後、リポジトリで IaC Security を有効にします。
- Code Security 設定ページで、Activate scanning for your repositories セクションを展開します。
- Select your source code management provider で、GitLab を選択します。
- Select where your scans should run で、Datadog を選択します。
- Connect your GitLab repositories で、次のいずれかを行います。
- 新しい GitLab インスタンスを接続するには、Connect GitLab Instance をクリックします。
- 既存のアカウントで IaC Security を有効にするには、Select repositories をクリックします。Code Security がすでに有効になっている場合は、Edit をクリックします。
- IaC Security を有効にするには、次のいずれかを行います。
- すべてのリポジトリで有効にするには、Enable Infrastructure as Code Scanning (IaC) を ON の位置に切り替えます。
- 単一のリポジトリで有効にするには、そのリポジトリの IaC スイッチを ON に切り替えます。
Azure DevOps 統合をインストールする
Azure DevOps リポジトリを接続して PR コメントを有効にするには、Azure DevOps ソースコードのセットアップ手順を参照してください。
リポジトリで IaC Security を有効にする
Azure DevOps 統合をセットアップした後、リポジトリで IaC Security を有効にします。
- Code Security 設定ページで、Activate scanning for your repositories セクションを展開します。
- Select your source code management provider で、Azure DevOps を選択します。
- Select where your scans should run で、Datadog を選択します。
- Connect your Azure DevOps repositories で、次のいずれかを行います。
- 新しい Azure DevOps 組織を接続するには、Connect Microsoft Entra App をクリックします。
- 既存のアカウントで IaC Security を有効にするには、Select repositories をクリックします。Code Security がすでに有効になっている場合は、Edit をクリックします。
- IaC Security を有効にするには、次のいずれかを行います。
- すべてのリポジトリで有効にするには、Enable Infrastructure as Code Scanning (IaC) を ON の位置に切り替えます。
- 単一のリポジトリで有効にするには、そのリポジトリの IaC スイッチを ON に切り替えます。
汎用 CI プロバイダーで IaC をセットアップする
概要
GitHub Actions、GitLab CI/CD、または Azure DevOps を使用していない場合は、CI パイプラインで直接 Datadog IaC Scanner を実行できます。datadog-ci CLI を使用して、IaC スキャン結果を Datadog にアップロードします。
GitHub 以外のリポジトリで IaC Security を実行している場合は、デフォルトブランチで最初のスキャンを実行してください。デフォルトブランチが master、main、default、stable、source、prod、または develop 以外の名前を使用している場合は、リポジトリの最初のスキャンをアップロードしてください。その後、Repository Settings でデフォルトブランチを手動で上書きし、デフォルトブランチ以外からの将来のスキャンがアップロードされて正しく処理されるようにします。
前提条件
- Node.js 20 以降および npm
curltar/usr/local/bin にスキャナーをインストールする権限
次の環境変数を設定します。
| 名前 | 説明 | 必須 | デフォルト |
|---|
DD_API_KEY | Datadog API キー。このキーを Datadog 組織で作成し、シークレットとして保存します。 | はい | |
DD_APP_KEY | アプリケーションキー。このキーを Datadog 組織で作成し、code_analysis_read スコープを含めます。このキーをシークレットとして保存します。 | はい | |
DD_SITE | 情報を送信する Datadog サイト。Datadog サイトは datadoghq.com です。 | いいえ | datadoghq.com |
CI パイプラインに下記を追加します。
# Set the Datadog site to send information to
export DD_SITE="datadoghq.com"
# Install dependencies
npm install -g @datadog/datadog-ci
# Download the latest Datadog IaC Scanner (x86_64/amd64 Linux; see GitHub Releases for arm64 and other platforms)
export IAC_SCANNER_URL="https://github.com/DataDog/datadog-iac-scanner/releases/latest/download/datadog-iac-scanner_linux_amd64.tar.gz"
curl -L "${IAC_SCANNER_URL}" -o /tmp/datadog-iac-scanner.tar.gz
tar xfz /tmp/datadog-iac-scanner.tar.gz -C /tmp
mv /tmp/datadog-iac-scanner /usr/local/bin/datadog-iac-scanner
# Run the Datadog IaC scanner
exit_code=0
/usr/local/bin/datadog-iac-scanner scan -p . -o /tmp || exit_code=$?
if [ $exit_code -lt 20 -o $exit_code -gt 60 ]; then echo "IaC scan failed" ; exit $exit_code ; fi
# Upload results
datadog-ci sarif upload /tmp/datadog-iac-scanner-result.sarif
この例では、Datadog IaC Scanner のx86_64 (amd64) Linux バージョンを使用しています。このスキャナーは、arm64 Linux、macOS、および Windows もサポートしています。別の OS やアーキテクチャを使用している場合は、
GitHub リリースページから適切なリリースを選択し、
IAC_SCANNER_URL の値を更新してください。
サードパーティの静的解析結果を IaC Security にアップロードする
Checkov を含むサードパーティの Infrastructure-as-Code (IaC) スキャナーからの SARIF 結果を IaC Security にインポートできます。SAST でサポートされている SARIF 準拠ツールについては、
サードパーティの静的解析結果のアップロードを参照してください。Node.js バージョン 14 以降が必要です。
SARIF レポートをアップロードするには:
DD_API_KEY 変数と DD_APP_KEY 変数が定義されていることを確認します。
必要に応じて、DD_SITE変数を設定します (デフォルトは datadoghq.com です)。
datadog-ci ユーティリティ (バージョン 2.0 以降) をインストールします。
npm install -g @datadog/datadog-ci
サードパーティの IaC スキャンツール (Checkov、Trivy、KICS など) をコードに対して実行し、結果を SARIF v2.1.0 形式で出力します。
結果を Datadog にアップロードします。
datadog-ci sarif upload $OUTPUT_LOCATION
- アップロードオプション
--tags: カスタムタグを追加する (形式: key:value)--max-concurrency: 同時アップロード数を設定する (デフォルト: 20)--dry-run: アップロードせずに検証する
必須の SARIF 属性
サードパーティ製スキャナー (Checkov を除く) の Datadog IaC Scanning で適切に取り込み、表示させるには、IaC Security の検出結果として認識されるために、SARIF ファイルに次の属性が含まれている必要があります。
Runs[...].tool.driver.name: Datadog IaC ScanningRuns[...].tool.driver.version: "code_update" または "full_scan""full_scan” リポジトリ全体の完全スキャン用"code_update" プルリクエスト/インクリメンタルスキャン用
Runs[...].tool.driver.rules[...].properties.tags:["DATADOG_RULE_TYPE:IAC_SCANNING"][“DATADOG_SCANNED_FILE_COUNT: <number>”] ("number" はスキャンされたファイルの数)
Runs[...].results[...].locations[...].physicalLocation:artifactLocation.uri: リポジトリルートからのファイルの相対パスregion.startLine: 開始行番号region.endLine: 終了行番号region.startColumn: 開始列番号region.endColumn: 終了列番号
抑制により、違反が警告を発せずに無視されます。〜たら results[ ].suppressions が存在する場合、その違反は完全に無視されます。
参考資料