コンテナーのDefenderのネットワーク アクセスとアクセス許可のリファレンス

この記事では、コンテナーのMicrosoft Defenderのネットワーク接続とアクセス許可の要件について説明します。

この記事の要件は、有効な機能と、コンテナー ワークロードが実行される環境によって異なります。

接続パターン計画コンポーネントの詳細について説明します。

コンテナー レジストリへのMicrosoft Defender for Cloud

Microsoft Defender for Cloudコンテナー レジストリに接続して、コンテナー イメージの脆弱性をスキャンします。 場合によっては、Defender for Containers でも脆弱性評価の結果がレジストリに発行されます。

Azure Container Registry (ACR)

Network

  • プライベート ACL の場合、ネットワーク アクセスはAzureインフラストラクチャを介して自動的に付与されます。

アクセス許可

  • ロール: Defender コンテナー レジストリ
  • アクセス許可:
    • Microsoft.ContainerRegistry/registries/pull/read
    • Microsoft.ContainerRegistry/registries/metadata/read
    • Microsoft.ContainerRegistry/registries/read
    • Microsoft.ContainerRegistry/registries/repositories/content/read
    • Microsoft.ContainerRegistry/registries/repositories/metadata/read
    • Microsoft.ContainerRegistry/registries/catalog/read

Amazon Elastic Container Registry (ECR)

Network

  • ECR エンドポイントは常にパブリックにアクセスできます。

アクセス許可

  • ロール: CspmMonitorAws (既存の CSPM ロールの一部)

    • ecr:GetRegistryPolicy
    • ecr:DescribeImages
    • ecr:DescribeRepositories
    • ecr:GetRepositoryPolicy
  • ロール: MDCContainersImageAssessmentRole

    • ecr:PutImage
    • ecr:BatchDeleteImage
    • ecr-public:PutImage
    • ecr-public:BatchDeleteImage

Note

MDCContainersImageAssessmentRoleのアクセス許可は、脆弱性評価の結果をゲートデプロイ用のレジストリに発行するためにのみ使用されます。 Microsoft Defender for Cloudでは、顧客のコンテナー イメージは変更されません。

Google Artifact Registry (GAR)

Network

  • GAR エンドポイントは常にパブリックにアクセスできます。

アクセス許可

  • ロール: MDCCspmCustomRole (既存の CSPM ロールの一部)

    • artifactregistry.repositories.list
    • artifactregistry.repositories.getIamPolicy
    • artifactregistry.dockerimages.list
  • ロール: MDCWritingGarAssessmentsRole

    • artifactregistry.repositories.uploadArtifacts
    • artifactregistry.repositories.deleteArtifacts

Note

MDCWritingGarAssessmentsRoleのアクセス許可は、脆弱性評価の結果をゲートデプロイ用のレジストリに発行するためにのみ使用されます。 Microsoft Defender for Cloudでは、顧客のコンテナー イメージは変更されません。

JFrog Artifactory (SaaS)

Network

  • JFrog Artifactory インスタンスは、インターネット経由でパブリックにアクセスできる必要があります。

アクセス許可と構成

  • などの専用グループ mdc-group-{customerTenantId}
  • MDC グループのすべてのリポジトリへの読み取りアクセス権を持つアクセス許可ターゲット
  • Microsoft Entra IDと統合された OpenID Connect (OIDC) プロバイダー
  • Entra によって発行されたトークンを使用して認証を許可する OIDC ID マッピング

使用される API スコープ

  • グループ アクセス: /access/api/v1/scim/v2/Groups
  • アクセス許可ターゲット: /access/api/v2/permissions (任意のローカル、REMOTE、DISTRIBUTION での READ)
  • OIDC プロバイダーと ID マッピング:
    • /access/api/v1/oidc
    • /access/api/v1/oidc/{oidcName}/identity_mappings

Docker Hub (SaaS)

Network

  • Docker Hubインターネット経由でパブリックにアクセスできる必要があります。

アクセス許可

  • 読み取りアクセス権を持つユーザー指定のアクセス トークン

Kubernetes クラスターへのMicrosoft Defender for Cloud

Microsoft Defender for Cloudは Kubernetes API エンドポイントに接続してクラスターを検出し、ポスチャとリスク分析用の構成データを収集します。

Azure Kubernetes Service (AKS)

Network

  • パブリック エンドポイントまたは制限付きパブリック エンドポイントの追加構成は必要ありません。 Microsoft Defender for Containers は、信頼されたアクセスAzure介して Kubernetes API にアクセスします。

アクセス許可

  • 顧客環境で作成されたマネージド ID
  • 組み込みロール: Kubernetes エージェントレス オペレーター
    • Microsoft.ContainerService/managedClusters/read
    • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/write
    • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/read
    • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/delete

Note

AKS の場合、Defender for Cloudは AKS の信頼されたアクセスを使用します。 Defender for Cloudマネージド ID と信頼されたアクセス ロール バインドを作成します。 クラスターが検出された後、Defender for Cloudは、組み込みの AKS ClusterRole aks:trustedaccessrole:defender-containers:microsoft-defender-operator に Kubernetes ClusterRoleBinding を作成します。これによって、クラスター内の読み取りアクセス許可が付与されます。

Amazon Elastic Kubernetes Service (EKS)

Network

  • Kubernetes API サーバーは、次からのアクセスを許可する必要があります。
    • 172.212.245.192/28
    • 48.209.1.192/28
  • プライベート API エンドポイントの場合は、上記の IP 範囲で制限付きパブリック エンドポイントを有効にする必要があります。

プライベート EKS クラスターの場合、Kubernetes API サーバーは、コンテナーの IP 範囲に対して承認されたMicrosoft Defenderからのアクセスを許可する制限付きパブリック エンドポイントを公開する必要があります。

アクセス許可

  • ロール: MDCContainersAgentlessDiscoveryK8sRole
    • eks:UpdateClusterConfig
    • eks:DescribeCluster
    • eks:CreateAccessEntry
    • eks:ListAccessEntries
    • eks:AssociateAccessPolicy
    • eks:ListAssociatedAccessPolicies

Note

eks:UpdateClusterConfig は、コンテナーの静的 IP CIDR ブロックのMicrosoft Defenderを EKS クラスターのパブリック アクセス CIDR 許可リスト (ResourcesVpcConfig.PublicAccessCidrs) に追加するために使用されます。 また、認証モードを CONFIG_MAP から API_AND_CONFIG_MAP に更新するためにも使用されます。これは、古いクラスターでのアクセス エントリの作成に必要です。 このアクセス許可が付与されていない場合、コンテナーのDefenderが Kubernetes API サーバーに接続できないため、パブリック エンドポイント アクセスが制限されたクラスターのインベントリ収集は失敗します。 Defender for Containers では必要なアクセス エントリを作成できないため、CONFIG_MAP 専用認証を使用するクラスターのインベントリ収集も失敗します。 パブリック エンドポイントが開いているクラスターの場合、このアクセス許可は接続には必要ありませんが、Defender for Cloudは構成の更新を試行します。

Google Kubernetes Engine (GKE)

Network

  • Kubernetes API サーバーは、次からのアクセスを許可する必要があります。
    • 172.212.245.192/28
    • 48.209.1.192/28
  • プライベート API エンドポイントの場合は、上記の IP 範囲で制限付きパブリック エンドポイントを有効にする必要があります。

プライベート GKE クラスターの場合、Kubernetes API サーバーは、コンテナーの IP 範囲に対して承認されたMicrosoft Defenderからのアクセスを許可する制限付きパブリック エンドポイントを公開する必要があります。

アクセス許可

  • ロール: MDCGkeClusterWriteRole

    • container.clusters.update
    • container.viewer
  • ロール: MDCGkeContainerResponseActionsRole

    • container.pods.update
    • container.pods.delete
    • container.networkPolicies.create
    • container.networkPolicies.update
    • container.networkPolicies.delete
  • ロール: MDCGkeContainerInventoryCollectionRole

    • container.nodes.proxy
    • container.secrets.list

Note

container.clusters.update は、コンテナーの静的 IP CIDR ブロックのMicrosoft Defenderを GKE クラスターマスター承認済みネットワーク構成に追加するために使用されます。 このアクセス許可が付与されていない場合、コンテナーのDefenderが Kubernetes API サーバーに接続できないため、マスター承認済みネットワークが有効になっているクラスターのインベントリ収集は失敗します。 マスター承認済みネットワークが有効になっていないクラスターの場合、接続にはこのアクセス許可は必要ありません。

Microsoft Defender for Cloudする Kubernetes クラスター

Kubernetes クラスターは、ランタイム セキュリティ データをMicrosoft Defender for Cloudに送信します。

送信ネットワークの要件

  • プロトコル:HTTPS
  • ポート: 443
  • ドメイン: *.cloud.defender.microsoft.com

Defender センサーによって作成された Kubernetes アクセス許可

Defender センサーは、次のアクセス許可を持つ Kubernetes ロールを作成します。

API グループ Resources 動詞
core ("") ポッド, ノード, サービス, イベント, 構成マップ 取得、リスト、ウォッチ、パッチ
apps デーモンセット、レプリカセット、ステートフルセット、デプロイ get, list, watch
バッチ jobs, cronjobs get, list, watch
networking.k8s.io イングレス get, list, watch
apiextensions.k8s.io customresourcedefinitions 取得、一覧表示、ウォッチ、作成、更新、削除
defender.microsoft.com すべてのリソース (*) 取得、一覧表示、ウォッチ、作成、更新、削除

Microsoft Defender for Cloudするクラウド インフラストラクチャ (Kubernetes 監査ログ)

コンテナーのDefenderには、コントロール プレーンの脅威検出用の Kubernetes 監査ログが必要です。

Azure Kubernetes Service (AKS)

  • 監査ログは、Azureインフラストラクチャを介してエージェントレスで収集されます。
  • プライベート AKS クラスターを含め、追加のネットワークまたはアクセス許可の要件は適用されません。

Amazon Elastic Kubernetes Service (EKS)

  • 監査ログは AWS CloudWatch を介して収集されます。
  • Defender for Cloudは、顧客アカウントに次のリソースを作成します。
    • Amazon SQS キュー
    • Amazon Kinesis Data Firehose 配信ストリーム
    • Amazon S3 バケット

必要なロール

  • MDCContainersK8sCloudWatchToKinesisRole
  • MDCContainersK8sKinesisToS3Role

Google Kubernetes Engine (GKE)

  • 監査ログは、GCP クラウド ログを使用してプロジェクト レベルで収集されます。
  • Defender for Cloudは、ログを転送するために顧客プロジェクトに Pub/Sub リソースを作成します。