Permissões de IAM de nuvem para Defender para contêineres no AWS e GCP

Este artigo descreve as funções e permissões de IAM de nuvem necessárias para integrar e operar Microsoft Defender para contêineres em ambientes do Amazon Elastic Kubernetes Service (EKS) e do Mecanismo de Kubernetes do Google (GKE).

Essas permissões se aplicam a conectores de nuvem, provisionamento de Azure Arc, proteção contra ameaças sem agente e recursos de integração do Registro.

Permissões exigidas pelo recurso

Recurso do Defender para Contêiner Componente Função necessária
Proteção de runtime do GKE

Endurecimento da carga de trabalho do GKE

Avaliação de vulnerabilidade de runtime (opcional)
Provisionamento do GKE Arc (para agente do Defender e agente de política do Azure) Função do Azure Arc: Operador do Agente Defender Kubernetes

Função predefinida do GCP: Administrador do Mecanismo do Kubernetes
OR
Visualizador do Mecanismo do Kubernetes (se apenas a proteção contra ameaças sem agente e/ou a extensão de acesso à API do Kubernetes estiver habilitada)
Proteção de runtime do EKS

Endurecimento da carga de trabalho do GKE

Avaliação de vulnerabilidade de runtime (opcional)
Provisionamento do AWS Arc (para agente do Defender e agente de política do Azure) Função do Azure Arc: Operador do Agente Defender Kubernetes

Função AWS: AzureDefenderKubernetesRole
Fortalecimento do plano de controle GKE - Proteção contra ameaças sem agente Provisionamento de registros de auditoria do GKE Consulte as permissões de proteção contra ameaças sem agente do GCP
Endurecimento do plano de controle EKS – Proteção contra ameaças sem agente Provisionamento de AuditLogs do AWS Consulte as permissões de proteção contra ameaças sem agente do AWS

Função de provisionamento do Azure Arc para EKS e GKE

A função interna do Azure Arc chamada Operador do Agente do Kubernetes do Defender para provisionar o agente do Defender e o agente de políticas do Azure tem as seguintes permissões:

  • 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

Permissões de proteção contra ameaças sem agente do AWS

  • AzureDefenderKubernetesRole (nome da função padrão: 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 (nome da função padrão: MDCContainersK8sDataCollectionRole):

    • sts:AssumeRole
    • sts:AssumeRoleWithWebIdentity
    • sqs:ReceiveMessage
    • sqs:DeleteMessage
    • s3:GetObject
    • s3:GetBucketLocation
  • AzureDefenderCloudWatchToKinesisRole (nome da função padrão: MDCContainersK8sCloudWatchToKinesisRole):

    • sts:AssumeRole
    • firehose:*
  • AzureDefenderKinesisToS3Role (nome da função padrão: MDCContainersK8sKinesisToS3Role):

  • MDCContainersAgentlessDiscoveryK8sRole

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

Permissões de proteção contra ameaças sem agente do 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 os logs que vão para 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

Permissões concedidas em ambientes de nuvem

Quando você integra ambientes AWS ou GCP para Microsoft Defender para Nuvem, um script de implantação é gerado para criar as funções de IAM necessárias com base no modelo de acesso selecionado:

  • O Acesso Padrão dá suporte a todas as extensões atuais e futuras dos planos selecionados do Defender.
  • O Acesso Privilegiado Mínimo concede apenas as permissões necessárias para dar suporte às extensões atualmente habilitadas.

As tabelas a seguir mostram as permissões concedidas a Defender para funções contêineres, dependendo do modelo de acesso selecionado.

Acesso padrão do AWS

Nome da Função Políticas/permissões associadas Capabilities
MDCContainersImageAssessmentRole Lista de permissões do AmazonEC2ContainerRegistryPowerUser AWS

Lista de permissões da AWS AmazonElasticContainerRegistryPublicPowerUser
Avaliação de vulnerabilidade de contêiner sem agente.
MDCContainersAgentlessDiscoveryK8sRole eks:DescribeCluster
eks:UpdateClusterConfig
eks:CreateAccessEntry
eks:ListAccessEntries
eks:AssociateAccessPolicy
eks:ListAssociatedAccessPolicies
Descoberta sem agente do Kubernetes.
Atualizar clusters EKS para dar suporte à restrição de IP

Acesso menos privilegiado do AWS

Nome da função Políticas/permissões associadas recursos
MDCContainersImageAssessmentRole Lista de permissões do AmazonEC2ContainerRegistryReadOnly AWS
Lista de permissões do AmazonElasticContainerRegistryPublicReadOnly AWS
Avaliação de vulnerabilidade de contêiner sem agente.
MDCContainersAgentlessDiscoveryK8sRole eks:DescribeCluster
eks:UpdateClusterConfig
Descoberta sem agente do Kubernetes.
Atualizar clusters EKS para dar suporte à restrição de IP

Acesso padrão do GCP

Nome da conta de serviço Funções/permissões associadas Capabilities
mdc-containers-artifact-assess Lista de permissões GCP para Roles/storage.objectUser

Lista de permissões da GCP (Plataforma Google Cloud) de roles/artifactregistry.writer
Avaliação de vulnerabilidade de contêiner sem agente.
mdc-containers-k8s-operator Lista de permissões da GCP (Plataforma Google Cloud) de roles/container.viewer
Função personalizada MDCGkeClusterWriteRole [Função Personalizada] com permissão container.clusters.update
Descoberta sem agente do Kubernetes
Atualizando clusters GKE para dar suporte à restrição de IP

Acesso com privilégios mínimos da GCP (Plataforma Google Cloud)

Nome da conta de serviço Funções/permissões associadas Recursos atuais
mdc-containers-artifact-assess Lista de permissões da GCP (Plataforma Google Cloud) de roles/artifactregistry.reader
Roles/storage.objectViewer lista de permissões do GCP
Avaliação de vulnerabilidade de contêiner sem agente.
mdc-containers-k8s-operator Lista de permissões da GCP (Plataforma Google Cloud) de roles/container.viewer

Função personalizada MDCGkeClusterWriteRole com a permissão container.clusters.update
Descoberta sem agente do Kubernetes.
Atualizando clusters GKE para dar suporte à restrição de IP

Próximas etapas