Permisos de IAM en la nube para Defender para contenedores en AWS y GCP

En este artículo se describen los roles y permisos de IAM en la nube necesarios para incorporar y operar Microsoft Defender para contenedores en entornos de Amazon Elastic Kubernetes Service (EKS) y Google Kubernetes Engine (GKE).

Estos permisos se aplican a conectores en la nube, Azure Arc aprovisionamiento, protección contra amenazas sin agente y características de integración del registro.

Permisos requeridos por la característica

Característica Defender para Contenedores Componente Rol obligatorio
Protección en tiempo de ejecución de GKE

Endurecimiento de cargas de trabajo de GKE

Evaluación de vulnerabilidades en tiempo de ejecución (opcional)
Aprovisionamiento de GKE Arc (agente de Defender y agente de directivas de Azure) Rol de Azure Arc: Operador del agente de Kubernetes de Defender

Rol predefinido de GCP: Administrador del motor de Kubernetes
O BIEN
Visor de motor de Kubernetes (si solo está habilitada la protección contra amenazas sin agente o la extensión de acceso a la API de Kubernetes)
Protección en tiempo de ejecución de EKS

Endurecimiento de cargas de trabajo de GKE

Evaluación de vulnerabilidades en tiempo de ejecución (opcional)
Aprovisionamiento de AWS Arc (agente de Defender y agente de Azure Policy) Rol de Azure Arc: Operador del agente de Kubernetes de Defender

Rol de AWS: AzureDefenderKubernetesRole
Endurecimiento del plano de control de GKE: protección contra amenazas sin agente Aprovisionamiento de AuditLogs de GKE Consulte Permisos de protección contra amenazas sin agente de GCP.
Endurecimiento del plano de control EKS: protección contra amenazas sin necesidad de un agente Aprovisionamiento de AWS AuditLogs Consulte Los permisos de protección contra amenazas sin agente de AWS

Rol de aprovisionamiento de Azure Arc para EKS y GKE

El rol integrado de Azure Arc Operador del agente de Kubernetes de Defender para aprovisionar el agente de Defender y el agente de directiva de Azure tiene los permisos siguientes:

  • 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

Permisos de protección contra amenazas sin agente de AWS

  • AzureDefenderKubernetesRole (nombre de rol predeterminado: 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 (nombre de rol predeterminado: MDCContainersK8sDataCollectionRole):

    • sts:AssumeRole
    • sts:AssumeRoleWithWebIdentity
    • sqs:ReceiveMessage
    • sqs:DeleteMessage
    • s3:GetObject
    • s3:GetBucketLocation
  • AzureDefenderCloudWatchToKinesisRole (nombre de rol predeterminado: MDCContainersK8sCloudWatchToKinesisRole):

    • sts:AssumeRole
    • firehose:*
  • AzureDefenderKinesisToS3Role (nombre de rol predeterminado: MDCContainersK8sKinesisToS3Role):

  • MDCContainersAgentlessDiscoveryK8sRole

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

Permisos de protección contra amenazas sin agente de 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 (todos los registros que van a 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

Permisos concedidos en entornos de nube

Al incorporar entornos de AWS o GCP a Microsoft Defender para la nube, se genera un script de implementación para crear los roles de IAM necesarios en función del modelo de acceso seleccionado:

  • Acceso predeterminado admite todas las extensiones actuales y futuras de los planes de Defender seleccionados.
  • Acceso con privilegios mínimos concede solo los permisos necesarios para admitir las extensiones actualmente habilitadas.

En las tablas siguientes se muestran los permisos concedidos a Defender para los roles contenedores, en función del modelo de acceso seleccionado.

Acceso predeterminado de AWS

Nombre del rol Directivas y permisos asociados Capacidades
MDCContainersImageAssessmentRole Lista de permisos de AWS AmazonEC2ContainerRegistryPowerUser

Lista de permisos de AWS AmazonElasticContainerRegistryPublicPowerUser
Evaluación de vulnerabilidades de contenedor sin agente.
MDCContainersAgentlessDiscoveryK8sRole eks:DescribeCluster
eks:UpdateClusterConfig
eks:CreateAccessEntry
eks:ListAccessEntries
eks:AssociateAccessPolicy
eks:ListAssociatedAccessPolicies
Detección sin agente de Kubernetes.
Actualización de clústeres EKS para admitir la restricción de IP

Acceso con privilegios mínimos de AWS

Nombre del rol Directivas y permisos asociados Capacidades
MDCContainersImageAssessmentRole Lista de permisos de AWS de AmazonEC2ContainerRegistryReadOnly
Lista de permisos de AWS AmazonElasticContainerRegistryPublicReadOnly
Evaluación de vulnerabilidades de contenedor sin agente.
MDCContainersAgentlessDiscoveryK8sRole eks:DescribeCluster
eks:UpdateClusterConfig
Detección sin agente de Kubernetes.
Actualización de clústeres EKS para admitir la restricción de IP

Acceso predeterminado de GCP

Nombre de la cuenta de servicio Roles y permisos asociados Capacidades
mdc-containers-artifact-assess Lista de permisos de GCP Roles/storage.objectUser

Lista de permisos de GCP Roles/artifactregistry.writer
Evaluación de vulnerabilidades de contenedor sin agente.
mdc-containers-k8s-operator Lista de permisos de GCP Roles/container.viewer
Rol personalizado MDCGkeClusterWriteRole [Rol personalizado] con permiso container.clusters.update
Detección sin agente de Kubernetes
Actualización de clústeres de GKE para admitir la restricción de IP

Acceso con privilegios mínimos de GCP

Nombre de la cuenta de servicio Roles y permisos asociados Funcionalidades actuales
mdc-containers-artifact-assess Lista de permisos de GCP Roles/artifactregistry.reader
Lista de permisos de GCP Roles/storage.objectViewer
Evaluación de vulnerabilidades de contenedor sin agente.
mdc-containers-k8s-operator Lista de permisos de GCP Roles/container.viewer

Rol personalizado MDCGkeClusterWriteRole con permiso container.clusters.update
Detección sin agente de Kubernetes.
Actualización de clústeres de GKE para admitir la restricción de IP

Pasos siguientes