Autorisations IAM cloud pour Defender pour les conteneurs sur AWS et GCP

Cet article décrit les rôles et autorisations IAM cloud nécessaires à l’intégration et à l’exploitation de Microsoft Defender pour les conteneurs dans les environnements EKS (Amazon Elastic Kubernetes Service) et Google Kubernetes Engine (GKE).

Ces autorisations s’appliquent aux connecteurs cloud, au provisionnement Azure Arc, à la protection contre les menaces sans agent et aux fonctionnalités d’intégration du Registre.

Autorisations requises par la fonctionnalité

Fonctionnalité Defender pour conteneur Composant Rôle obligatoire
Protection du runtime GKE

Renforcement de la charge de travail GKE

Évaluation des vulnérabilités du runtime (facultatif)
Approvisionnement GKE Arc (pour l’agent Defender et l’agent de stratégie Azure) Rôle Azure Arc : Opérateur de l’agent Kubernetes Defender

Rôle prédéfini GCP : Administrateur du moteur Kubernetes
OU
Visionneuse du moteur Kubernetes (si seule la protection contre les menaces sans agent et/ou l’extension d’accès aux API Kubernetes sont activées)
Protection du runtime EKS

Renforcement de la charge de travail GKE

Évaluation des vulnérabilités du runtime (facultatif)
Approvisionnement AWS Arc (pour l’agent Defender et l’agent de stratégie Azure) Rôle Azure Arc : Opérateur de l’agent Kubernetes Defender

Rôle AWS : AzureDefenderKubernetesRole
Renforcement du plan de contrôle GKE - Protection contre les menaces sans agent Configuration de GKE AuditLogs Consultez les autorisations de protection contre les menaces sans agent GCP
Renforcement du plan de contrôle EKS - Protection contre les menaces sans agent Configuration des journaux d'audit AWS Consultez les autorisations de protection contre les menaces sans agent AWS

Rôle d’approvisionnement Azure Arc pour EKS et GKE

Le rôle intégré Azure Arc Defender Kubernetes Agent Operator pour provisionner l’agent Defender et l’agent de stratégie Azure dispose des autorisations suivantes :

  • Microsoft.Authorization/*/read
  • Microsoft.Insights/alertRules/*
  • Microsoft.Resources/deployments/*
  • Microsoft.Resources/subscriptions/resourceGroups/read
  • Microsoft.Resources/subscriptions/resourceGroups/write
  • Microsoft.Resources/subscriptions/operationresults/read
  • Microsoft.Resources/subscriptions/read
  • Microsoft.KubernetesConfiguration/extensions/write
  • Microsoft.KubernetesConfiguration/extensions/read
  • Microsoft.KubernetesConfiguration/extensions/delete
  • Microsoft.KubernetesConfiguration/extensions/operations/read
  • Microsoft.Kubernetes/connectedClusters/Write
  • Microsoft.Kubernetes/connectedClusters/read
  • Microsoft.OperationalInsights/workspaces/write
  • Microsoft.OperationalInsights/workspaces/read
  • Microsoft.OperationalInsights/workspaces/listKeys/action
  • Microsoft.OperationalInsights/workspaces/sharedkeys/action
  • Microsoft.Kubernetes/register/action
  • Microsoft.KubernetesConfiguration/register/action

Autorisations de protection contre les menaces sans agent AWS

  • AzureDefenderKubernetesRole (nom de rôle par défaut : MDCContainersK8sRole) :

  • sts:AssumeRole

  • sts:AssumeRoleWithWebIdentity

  • logs:PutSubscriptionFilter

  • logs:DescribeSubscriptionFilters

  • logs:DescribeLogGroups

  • logs:PutRetentionPolicy

  • firehose:*

  • iam:PassRole

  • eks:UpdateClusterConfig

  • eks:DescribeCluster

  • eks:CreateAccessEntry

  • eks:ListAccessEntries

  • eks:AssociateAccessPolicy

  • eks:ListAssociatedAccessPolicies

  • sqs:*

  • s3:*

  • AzureDefenderKubernetesScubaReaderRole (nom de rôle par défaut : MDCContainersK8sDataCollectionRole) :

    • sts:AssumeRole
    • sts:AssumeRoleWithWebIdentity
    • sqs:ReceiveMessage
    • sqs:DeleteMessage
    • s3:GetObject
    • s3:GetBucketLocation
  • AzureDefenderCloudWatchToKinesisRole (nom de rôle par défaut : MDCContainersK8sCloudWatchToKinesisRole) :

    • sts:AssumeRole
    • firehose:*
  • AzureDefenderKinesisToS3Role (nom de rôle par défaut : MDCContainersK8sKinesisToS3Role) :

  • MDCContainersAgentlessDiscoveryK8sRole

    • sts:AssumeRoleWithWebIdentity
    • eks:UpdateClusterConfig
    • eks:DescribeCluster
    • eks:CreateAccessEntry
    • eks:ListAccessEntries
    • eks:AssociateAccessPolicy
    • eks:ListAssociatedAccessPolicies
  • MDCContainersImageAssessmentRole

Autorisations de protection contre les menaces sans agent GCP

  • MicrosoftDefenderContainersDataCollectionRole

    • pubsub.subscriptions.consume
    • pubsub.subscriptions.get
  • MicrosoftDefenderContainersRole

    • logging.sinks.list
    • logging.sinks.get
    • logging.sinks.create
    • logging.sinks.update
    • logging.sinks.delete
    • resourcemanager.projects.getIamPolicy
    • resourcemanager.organizations.getIamPolicy
    • iam.serviceAccounts.get
    • iam.workloadIdentityPoolProviders.get (tous les journaux envoyés à Pub/Sub)
  • MDCCustomRole

    • resourcemanager.folders.get
    • resourcemanager.folders.list
    • resourcemanager.projects.get
    • resourcemanager.projects.list
    • serviceusage.services.enable
    • iam.roles.create
    • iam.roles.list
    • compute.projects.get
    • compute.projects.setCommonInstanceMetadata
  • MDCCspmCustomRole

    • resourcemanager.folders.getIamPolicy
    • resourcemanager.folders.list
    • resourcemanager.organizations.get
    • resourcemanager.organizations.getIamPolicy
    • storage.buckets.getIamPolicy
  • MDCGkeContainerInventoryCollectionRole

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

Autorisations accordées dans les environnements cloud

Lorsque vous intégrez des environnements AWS ou GCP à Microsoft Defender for Cloud, un script de déploiement est généré pour créer les rôles IAM requis en fonction du modèle d’accès sélectionné :

  • Access par défaut prend en charge toutes les extensions actuelles et futures des plans Defender sélectionnés.
  • L’accès privilégié minimum accorde uniquement les autorisations requises pour prendre en charge les extensions actuellement activées.

Les tableaux suivants indiquent les autorisations accordées à Defender pour les rôles Conteneurs, en fonction du modèle d’accès sélectionné.

Accès AWS par défaut

Nom du rôle Stratégies associées / Autorisations Capacités
MDCContainersImageAssessmentRole Liste des autorisations AWS AmazonEC2ContainerRegistryPowerUser

Liste des autorisations AWS AmazonElasticContainerRegistryPublicPowerUser AWS
Évaluation des vulnérabilités de conteneur sans agent.
MDCContainersAgentlessDiscoveryK8sRole eks:DescribeCluster
eks:UpdateClusterConfig
eks:CreateAccessEntry
eks:ListAccessEntries
eks:AssociateAccessPolicy
eks:ListAssociatedAccessPolicies
Découverte sans agent de Kubernetes.
Mise à jour des clusters EKS pour prendre en charge la restriction IP

Accès AWS avec le moins de privilèges

Nom du rôle Stratégies associées / Autorisations Capacités
MDCContainersImageAssessmentRole Liste des autorisations AWS AmazonEC2ContainerRegistryReadOnly
Liste des autorisations AWS pour AmazonElasticContainerRegistryPublicReadOnly
Évaluation des vulnérabilités de conteneur sans agent.
MDCContainersAgentlessDiscoveryK8sRole eks:DescribeCluster
eks:UpdateClusterConfig
Découverte sans agent de Kubernetes.
Mise à jour des clusters EKS pour prendre en charge la restriction IP

Accès par défaut GCP

Nom du compte de service Rôles /autorisations associés Capacités
mdc-containers-artifact-assess Liste des autorisations GCP Roles/storage.objectUser

Liste des autorisations GCP roles/artifactregistry.writer
Évaluation des vulnérabilités de conteneur sans agent.
mdc-containers-k8s-operator Liste des autorisations GCP pour rôles/container.viewer
Rôle personnalisé MDCGkeClusterWriteRole [Rôle personnalisé] avec l’autorisation container.clusters.update
Découverte sans agent de Kubernetes
Mise à jour des clusters GKE pour prendre en charge la restriction IP

Droit d'accès minimal GCP

Nom du compte de service Rôles /autorisations associés Fonctionnalités actuelles
mdc-containers-artifact-assess Rôles/artifactregistry.reader liste d’autorisations GCP
Roles/storage.objectViewer liste des autorisations GCP
Évaluation des vulnérabilités de conteneur sans agent.
mdc-containers-k8s-operator Liste des autorisations GCP pour rôles/container.viewer

Rôle personnalisé MDCGkeClusterWriteRole avec l’autorisation container.clusters.update
Découverte sans agent de Kubernetes.
Mise à jour des clusters GKE pour prendre en charge la restriction IP

Étapes suivantes