This product is not supported for your selected Datadog site. ().

Agentless Scanning では、Datadog Agent をインストールしなくても、クラウド インフラストラクチャ内の脆弱性を可視化できます。Agentless Scanning はお客様のインフラストラクチャ内で完結して動作し、Datadog に送信するデータは最小限に抑えつつ、機微データはお客様の環境内に留めます。スキャナーはクラウド アカウント内で動作するため、通常の クラウド プロバイダーのコスト が発生します。詳しくは、Agentless Scanning の概要 を参照してください。

セットアップは、クラウド アカウントごとにおおむね 30 分で完了します:

  1. 以下の前提条件を確認する
  2. 使用するクラウド プロバイダーとデプロイ方法を選ぶ
  3. クラウド アカウントでテンプレートを起動する
  4. Datadog でスキャン結果を確認する

前提条件

Agentless Scanning を設定する前に、次の前提条件を満たしていることを確認してください。

  • Remote Configuration: Agentless スキャナーにスキャン指示を送るには、Datadog 組織で Remote Configuration を有効にしておく必要があります。

  • API とアプリケーション キー:

    • Datadog にスキャン結果を送信するには、Remote Configuration が有効な API キー が必要です。
    • Datadog API 経由でスキャン機能を有効にするには、Integrations Manage または Org Management のいずれかの権限を持つ アプリケーション キー が必要です。
  • クラウド権限: Agentless Scanning のインスタンスには、ホスト、ホスト イメージ、コンテナ レジストリ、関数をスキャンするための権限が必要です。透明性を確保するために以下へ一覧を示していますが、Datadog はこれらの権限をインストール時に自動で設定します。

    スキャン権限:

    • ebs:GetSnapshotBlock
    • ebs:ListChangedBlocks
    • ebs:ListSnapshotBlocks
    • ec2:CopySnapshot
    • ec2:CreateSnapshot
    • ec2:CreateTags
    • ec2:DeleteSnapshot
    • ec2:DeregisterImage
    • ec2:DescribeSnapshotAttribute
    • ec2:DescribeSnapshots
    • ec2:DescribeVolumes
    • ecr:BatchGetImage
    • ecr:GetAuthorizationToken
    • ecr:GetDownloadUrlForLayer
    • kms:CreateGrant
    • kms:Decrypt
    • kms:DescribeKey
    • lambda:GetFunction
    • lambda:GetLayerVersion

    Sensitive Data Scanning (DSPM) を有効にしている場合のみ:

    • kms:GenerateDataKey
    • s3:GetObject
    • s3:ListBucket

    • Microsoft.Compute/virtualMachines/read
    • Microsoft.Compute/virtualMachines/instanceView/read
    • Microsoft.Compute/virtualMachineScaleSets/read
    • Microsoft.Compute/virtualMachineScaleSets/instanceView/read
    • Microsoft.Compute/virtualMachineScaleSets/virtualMachines/read
    • Microsoft.Compute/virtualMachineScaleSets/virtualMachines/instanceView/read
    • Microsoft.Compute/disks/read
    • Microsoft.Compute/disks/beginGetAccess/action
    • Microsoft.Compute/disks/endGetAccess/action
    • Microsoft.ContainerRegistry/registries/pull/read
    • compute.disks.create
    • compute.disks.createSnapshot
    • compute.disks.delete
    • compute.disks.get
    • compute.disks.setLabels
    • compute.disks.use
    • compute.globalOperations.get
    • compute.images.get
    • compute.instances.attachDisk
    • compute.instances.detachDisk
    • compute.snapshots.create
    • compute.snapshots.get
    • compute.snapshots.list
    • compute.snapshots.delete
    • compute.snapshots.setLabels

セットアップ

何個のアカウント、どのリージョンにスキャナーを配置するかを含むデプロイ構成の考え方については、Agentless Scanning のデプロイ を参照してください。

利用できるセットアップ方法を確認するには、クラウド プロバイダーを選択してください。複数のクラウド プロバイダーで Agentless Scanning を導入する場合は、各プロバイダーごとに個別にセットアップを完了してください。

セットアップ方法を選ぶ

  • Datadog を初めて使う場合: Cloud Security の概要 ページで Get Started with Cloud Security をクリックし、続けて Quick Start をクリックします。Quick Start は、Cloud Security の機能をあらかじめ有効にした状態で、AWS CloudFormation を使って Agentless Scanning をデプロイするガイド付きのセットアップ フローです。Cloud Security Management をまだセットアップしていない組織でのみ利用できます。
  • Datadog に単一の AWS アカウントを登録している場合: CloudFormation または Terraform を使用します。マルチ リージョン デプロイには Terraform を推奨します。
  • 複数アカウントの AWS Organizations 環境の場合: CloudFormation StackSet を使用して、すべてのメンバー アカウントにスキャン機能をデプロイします。
  • AWS Organizations を使わずに複数アカウントを運用している場合: 各アカウントごとに、CloudFormation または Terraform のセットアップを個別に繰り返します。

Datadog と連携済みの AWS アカウントで Agentless Scanning を有効にしたい場合、または新しい AWS アカウントを追加したい場合は、CloudFormation を使用します。

新しい AWS アカウント

  1. Cloud Security のセットアップ ページで、Cloud Integrations > AWS をクリックします。
  2. AWS セクションの下部で Add AWS accounts by following these steps をクリックします。Add New AWS Account(s) ダイアログが表示されます。
  3. CloudFormation スタックを作成する AWS リージョンを選択します。
  4. Remote Configuration が有効な API キーを選択します。
  5. Cloud Storage 向けに Sensitive Data Scanner を有効にするかどうかを選択します。これにより、Amazon S3 リソース内の機微データが自動でカタログ化・分類されます。
  6. Launch CloudFormation Template をクリックします。AWS CloudFormation 画面を表示する新しいウィンドウが開きます。表示された CloudFormation テンプレートを使ってスタックを作成してください。このテンプレートには、Agentless スキャナーのデプロイと管理に必要な IAM 権限が含まれています。

既存の AWS アカウント

  1. Cloud Security のセットアップ ページで、Cloud Integrations > AWS をクリックします。
  2. Agentless スキャナーをデプロイしたい AWS アカウントをクリックすると、サイド パネルが開きます。
  3. Features タブで、Configure Agentless Scanning または Manage をクリックし、Agentless Scanning Setup モーダルを開きます。
  4. How would you like to set up Agentless Scanning? セクションで、CloudFormation を選択します。
  5. Remote Configuration が有効な API キーを選択します。
  6. Vulnerability ManagementSensitive Data Scanner など、有効にしたい機能を選択します。
  7. Launch CloudFormation Template をクリックします。AWS CloudFormation 画面を表示する新しいウィンドウが開きます。表示された CloudFormation テンプレートを使ってスタックを作成してください。
  8. Done をクリックします。

複数アカウントを含む AWS Organizations では、CloudFormation StackSet を使って、すべてのメンバー アカウントに Agentless Scanning 用の委任ロールをデプロイします。この方法を使うと、オンボーディングを自動化でき、新たに AWS Organization に追加されたアカウントにも設定を反映できます。

このセットアップでは、AWS Organization 全体、または特定の Organizational Unit (OU) に対して、クロス アカウント スキャン に必要な委任ロールをデプロイします。まず、中央のスキャン用アカウントで CloudFormation または Terraform を使って Agentless Scanning を設定し、その後 StackSet をデプロイして残りのアカウントを構成します。

前提条件

  1. AWS management account へアクセスできること。
  2. CloudFormation StackSets 用に Trusted Access with AWS Organizations が有効になっていること。
  3. 中央のスキャン用アカウントで Agentless Scanning の設定がすでに完了していること (上記参照)。

StackSet をデプロイする

  1. AWS management account にログインし、CloudFormation > StackSets に移動します。
  2. Create StackSet をクリックします。
  3. Service-managed permissions を選択します。
  4. Specify templateAmazon S3 URL を選択し、次の URL を入力します:
    https://datadog-cloudformation-template-quickstart.s3.amazonaws.com/aws/v4.3.1/datadog_agentless_delegate_role_stackset.yaml
    
  5. StackSet name を入力します (たとえば DatadogAgentlessScanningStackSet)。
  6. Agentless スキャナー インスタンスに関連付けられた IAM ロールの ARN である ScannerInstanceRoleARN パラメーターを設定します。
    ScannerInstanceRoleARN には、スキャナー インスタンス ロールの正確な ARN を指定する必要があります (例: arn:aws:iam::123456789012:role/DatadogAgentlessScannerRole)。arn:aws:iam::123456789012:root のような root ARN を指定しても動作しません。

    ScannerInstanceRoleARN は、委任ロール (対象アカウント側で作成) と、スキャナー インスタンス (中央アカウントですでに稼働中) の間に信頼関係を確立します。これにより、次のようなクロス アカウント スキャンが可能になります:

    • The scanner runs in Account 4.
    • The delegate role exists in Accounts 1, 2, 3 (deployed through the StackSet).
    • The scanner assumes the delegate roles to scan resources in those accounts.
  7. Deployment targets では、AWS Organization 全体に展開するか、特定の OU のみに展開するかを設定します。
  8. 新しく AWS Organization に追加されたアカウントにも自動で設定を反映させるには、Automatic deployment を有効にします。
  9. デプロイ先として single region を選択します (IAM ロールはグローバル リソースのため、アカウントごとに 1 回だけデプロイすれば十分です)。
  10. 内容を確認し、StackSet を送信します。

StackSet のデプロイが完了すると、メンバー アカウント側で、中央スキャナー アカウントからのクロス アカウント スキャンを許可する設定が反映されます。

Terraform Datadog Agentless Scanner モジュール は、Datadog Agentless スキャナーを導入するための再利用可能な構成を提供します。Terraform は、マルチ リージョン環境で推奨されるデプロイ方法です。リージョンごとに 1 台のスキャナーを配置するため、クロス リージョンのネットワーク コストを回避できます。どのデプロイ トポロジーを選ぶべきかについては、Agentless Scanning のデプロイ を参照してください。マルチ リージョン構成を含む利用例は、GitHub リポジトリの examples ディレクトリ を参照してください。

新しい AWS アカウント

  1. Cloud Security のセットアップ ページで、Cloud Integrations > AWS をクリックします。
  2. AWS セクションの下部で Add AWS accounts by following these steps をクリックします。Add New AWS Account(s) ダイアログが表示されます。
  3. Choose a method for adding your AWS account で、Manually を選択します。
  4. Datadog Agentless Scanner モジュール のインストール手順に従います。
  5. I confirm that the Datadog IAM Role has been added to the AWS Account チェック ボックスを選択します。
  6. AWS Account IDAWS Role Name を入力します。
  7. Save をクリックします。

既存の AWS アカウント

  1. Cloud Security のセットアップ ページで、Cloud Integrations > AWS をクリックします。
  2. Agentless スキャナーをデプロイしたい AWS アカウントをクリックして、サイド パネルを開きます。
  3. Features タブで、Configure Agentless Scanning または Manage をクリックし、Agentless Scanning Setup モーダルを開きます。
  4. How would you like to set up Agentless Scanning? セクションで、Terraform を選択します。
  5. Datadog Agentless Scanner モジュール のインストール手順に従います。
  6. I confirm the Terraform module is installed チェック ボックスを選択します。
  7. Done をクリックします。

上記のいずれかのセットアップ方法を完了したら、セットアップを確認 してください。

セットアップ方法を選ぶ

  • 新しい Azure サブスクリプション: Azure Resource Manager (推奨) または Terraform を使用します。
  • 既存の Azure サブスクリプション: Azure Resource Manager または Terraform を使用します。
  • 複数のサブスクリプション: 繰り返し適用しやすいマルチ サブスクリプション デプロイには、Terraform を使用します。

Azure Resource Manager テンプレートを使って Agentless スキャナーをデプロイします。このテンプレートには、Agentless スキャナーのデプロイと管理に必要なロール定義が含まれています。

新しい Azure サブスクリプション

Datadog Azure integration が設定済みであることを確認してください。

Complete the following steps to enable Agentless Scanning for your Azure subscriptions:

Cloud Security Setup page
  1. On the Cloud Security Setup page, click Cloud Integrations > Azure.
  2. Locate the tenant ID of your subscription.
  3. (Optional) To enable detection of misconfigurations, toggle Resource Scanning to the on position.
  4. Expand the list of Azure subscriptions and locate the subscription where you want to deploy the Agentless scanner.
  5. Click the Enable button under Vulnerability Scanning.
  6. The Vulnerability Scanning dialog is displayed. Toggle Vulnerability Scanning to the on position.
  7. Under How would you like to set up Agentless Scanning?, select Azure Resource Manager.
  8. Click Launch Azure Resource Manager to be redirected to the Azure portal.
Azure portal
  1. Log in to the Azure portal. The template creation form is displayed.
  2. Select the subscription and the resource group in which the Agentless scanners are to be deployed. Datadog recommends that you deploy the Datadog Agentless Scanner in a dedicated resource group.
  3. In Subscriptions to scan, select all the subscriptions you want to scan.
  4. Enter your Datadog API Key, select your Datadog Site, and fill out the remainder of the form.
  5. Click Review + create.

既存の Azure サブスクリプション

Complete the following steps to enable Agentless Scanning for your Azure subscriptions:

Cloud Security Setup page
  1. On the Cloud Security Setup page, click Cloud Integrations > Azure.
  2. Locate the tenant ID of your subscription.
  3. (Optional) To enable detection of misconfigurations, toggle Resource Scanning to the on position.
  4. Expand the list of Azure subscriptions and locate the subscription where you want to deploy the Agentless scanner.
  5. Click the Enable button under Vulnerability Scanning.
  6. The Vulnerability Scanning dialog is displayed. Toggle Vulnerability Scanning to the on position.
  7. Under How would you like to set up Agentless Scanning?, select Azure Resource Manager.
  8. Click Launch Azure Resource Manager to be redirected to the Azure portal.
Azure portal
  1. Log in to the Azure portal. The template creation form is displayed.
  2. Select the subscription and the resource group in which the Agentless scanners are to be deployed. Datadog recommends that you deploy the Datadog Agentless Scanner in a dedicated resource group.
  3. In Subscriptions to scan, select all the subscriptions you want to scan.
  4. Enter your Datadog API Key, select your Datadog Site, and fill out the remainder of the form.
  5. Click Review + create.

Terraform Datadog Agentless Scanner モジュール は、Datadog Agentless スキャナーを導入するための再利用可能な構成を提供します。どのデプロイ トポロジーを選ぶべきかについては、Agentless Scanning のデプロイ を参照してください。利用例については、GitHub リポジトリの examples ディレクトリ を確認してください。

  1. Cloud Security のセットアップ ページで、Cloud Integrations > Azure をクリックします。
  2. Agentless スキャナーをデプロイするサブスクリプションが含まれるテナントを展開します。
  3. Agentless スキャナーをデプロイしたい Azure サブスクリプションの Enable ボタンをクリックします。
  4. Vulnerability Scanning をオンにします。
  5. How would you like to set up Agentless Scanning? セクションで、Terraform を選択します。
  6. Datadog Agentless Scanner モジュール のインストール手順に従います。
  7. Done をクリックします。

上記のいずれかのセットアップ方法を完了したら、セットアップを確認 してください。

セットアップ方法を選ぶ

まだ GCP プロジェクトを Datadog に接続していない場合は、先に GCP integration をセットアップ してください。

Google Cloud Shell を使って、GCP プロジェクト向けに Agentless Scanning をセットアップします。この方法では、GCP 向け Terraform Datadog Agentless Scanner モジュール をラップした セットアップ スクリプト をダウンロードするため、Terraform を直接管理する必要はありません。実行前にスクリプト内容を確認することもできます。

必須の GCP 権限: Cloud Shell で使用する ID には、スキャナー プロジェクトに対する Owner または同等の権限が必要です。このスクリプトは Terraform state 用の GCS バケットを作成するため、そのプロジェクトに対する Storage 権限も必要です (例: roles/storage.admin、または storage.buckets.create / storage.buckets.get / storage.buckets.update)。また、TF_STATE_BUCKET 環境変数に既存バケット名を設定すれば、Terraform state 用に既存のバケットを再利用できます。その場合、スクリプトは新しいバケットを作成しません。“Setting up Terraform state storage” で 403 エラーが表示された場合は、トラブルシューティング ガイドの [GCP: Failed to create state bucket][26] を参照してください。

  1. Cloud Security のセットアップ ページで、Cloud Integrations > GCP をクリックします。
  2. Agentless スキャナーをデプロイしたいプロジェクトを含むアカウントを展開します。
  3. Agentless スキャナーをデプロイしたい GCP プロジェクトの Enable ボタンをクリックします。Vulnerability Scanning モーダルが開きます。
  4. How would you like to set up Agentless Scanning? セクションで、Cloud Shell を選択します。
  5. Remote Configuration が有効な API キー を選択します。アプリケーション キーは自動生成されます。
  6. スキャン対象の GCP projects を選択します。
  7. スキャナーを設定します:
    • すでにスキャナーをデプロイ済みの場合は、use an existing scanner (推奨) または deploy a new scanner を選択できます。
    • 新しいスキャナーをデプロイする場合は、Scanner project を選択します (選択済みプロジェクトのいずれかである必要があります)。150 台を超えるホストがある各リージョンにスキャナーを配置することを推奨します。
  8. 生成されたコマンドをコピーするには Copy command をクリックし、Google Cloud Shell を開くには Open Google Cloud Shell をクリックします。内容を確認してからコマンドを実行してください。このスクリプトは GCP 向け Terraform Datadog Agentless Scanner モジュール を適用し、選択したプロジェクトとリージョンにスキャナーをデプロイして構成します。
  9. コマンドの実行が完了したら、Datadog のセットアップ ページに戻り、Done をクリックします。

Terraform Datadog Agentless Scanner モジュール は、Datadog Agentless スキャナーを導入するための再利用可能な構成を提供します。どのデプロイ トポロジーを選ぶべきかについては、Agentless Scanning のデプロイ を参照してください。利用例については、GitHub リポジトリの examples ディレクトリ を確認してください。

  1. Cloud Security のセットアップ ページで、Cloud Integrations > GCP をクリックします。
  2. Agentless スキャナーをデプロイしたいプロジェクトを含むアカウントを展開します。
  3. Agentless スキャナーをデプロイしたい GCP プロジェクトの Enable ボタンをクリックします。
  4. Vulnerability Scanning をオンにします。
  5. Datadog Agentless Scanner モジュール のインストール手順に従います。
  6. Done をクリックします。

上記のいずれかのセットアップ方法を完了したら、セットアップを確認 してください。

セットアップを確認する

セットアップ完了後、Agentless Scanning の初回結果が表示されるまでには少し時間がかかります。最初のスキャン サイクルの完了には、おおよそ 30 分かかります。

2 時間経っても結果が表示されない場合は、Agentless Scanning のトラブルシューティング ガイド を参照してください。

スキャン結果は次の場所で確認できます:

スキャン対象からリソースを除外する

特定のホスト、コンテナ、関数をスキャン対象から除外する方法については、Resource Evaluation Filters を参照してください。

Agentless Scanning を無効にする

  1. Cloud Security のセットアップ ページで、Cloud Integrations > AWS をクリックします。
  2. 必要に応じてフィルターを使い、Agentless Scanning を停止したいアカウントを見つけます。そのアカウントをクリックして、設定が表示されるサイド パネルを開きます。
  3. Features タブで、Configure Agentless Scanning または Manage をクリックし、Agentless Scanning Setup モーダルを開きます。
  4. How would you like to set up Agentless Scanning? の下で、Terraform をクリックします。
  5. Enable Features の下で、Enable Agentless Vulnerability management の横にあるトグルをオフにします。
  6. Done をクリックします。
  1. Cloud Security のセットアップ ページで、Cloud Integrations > Azure をクリックします。
  2. 対象のサブスクリプションが属するテナントを見つけ、サブスクリプション一覧を展開して、Agentless Scanning を無効化したいサブスクリプションを確認します。
  3. Enabled ラベルの横にある Edit ボタン () をクリックし、Vulnerability Scanning モーダルを開きます。
  4. Vulnerability Scanning の横にあるトグルをオフにします。
  5. Done をクリックします。
  1. Cloud Security のセットアップ ページで、Cloud Integrations > GCP をクリックします。
  2. Agentless Scanning を無効にしたいプロジェクトを含むアカウントを展開します。
  3. Enabled ラベルの横にある Edit ボタン () をクリックし、Vulnerability Scanning モーダルを開きます。
  4. Vulnerability Scanning の横にあるトグルをオフにします。
  5. Done をクリックします。

Uninstall Agentless ScanningAgentless Scanning をアンインストールする

Agentless Scanning のインストールに使用したデプロイ方法を選択してください:

Agentless Scanning をアンインストールするには、Terraform コードからスキャナー モジュールを削除します。詳しくは、Terraform module のドキュメントを参照してください。

Agentless Scanning をアンインストールするには、AWS コンソールにログインし、Agentless Scanning 用に作成した CloudFormation スタックを削除します (サブ スタック名は DatadogIntegration-DatadogAgentlessScanning-... という形式です)。

Google Cloud Shell を使ってセットアップした Agentless Scanning をアンインストールするには、インストール時に使用したものと同じセットアップ コマンドを再度実行し、末尾の deploydestroy に置き換えます。例:

curl -sSL "<CLOUD_SHELL_SCRIPT_URL>" -o gcp_agentless_setup.pyz && \
DD_API_KEY="<DD_API_KEY>" \
DD_APP_KEY="<DD_APP_KEY>" \
DD_SITE="<DD_SITE>" \
SCANNER_PROJECT="<SCANNER_PROJECT>" \
SCANNER_REGIONS="<SCANNER_REGIONS>" \
PROJECTS_TO_SCAN="<PROJECTS>" \
python3 gcp_agentless_setup.pyz destroy

コマンドを実行する前に、セットアップ スクリプトのソース を確認できます。

Agentless Scanning をアンインストールするには、Azure サブスクリプションにログインします。Agentless スキャナー専用のリソース グループを作成している場合は、そのリソース グループとあわせて次の Azure ロール定義も削除してください:

  • Datadog Agentless Scanner Role
  • Datadog Agentless Scanner Delegate Role

専用のリソース グループを使用していない場合は、Datadog:trueDatadogAgentlessScanner:true のタグを手がかりにスキャナー リソースを特定し、手動で削除する必要があります。

参考資料