Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Important
Os Clusters de Big Data do Microsoft SQL Server 2019 foram desativados. O suporte para clusters de Big Data do SQL Server 2019 terminou em 28 de fevereiro de 2025. Para obter mais informações, consulte a postagem no blog de anúncios e as opções de Big Data na plataforma microsoft SQL Server.
Este artigo descreve os requisitos de permissões para usuários que gerenciam clusters de Big Data e a semântica em relação à conta de serviço padrão e ao acesso do Kubernetes de dentro do cluster de Big Data.
Note
Para obter recursos adicionais sobre o modelo RBAC do Kubernetes, confira Como usar a autorização do RBAC – Kubernetes e Como usar o RBAC para definir e aplicar permissões – OpenShift.
Função necessária para a implantação
Os Clusters de Big Data do SQL Server 2019 usam contas de serviço (como sa-mssql-controller ou master) para orquestrar o provisionamento de pods de cluster, serviços, alta disponibilidade, monitoramento etc. Quando a implantação do cluster de Big Data é iniciada (por exemplo, azdata bdc create), a CLI de Dados do Azure (azdata) faz o seguinte:
- Verifica se o namespace fornecido existe.
- Se o namespace não existir, ele criará um e aplicará o rótulo
MSSQL_CLUSTER. - Cria a conta de serviço
sa-mssql-controller. - Cria uma função
<namespaced>-admincom permissões completas no namespace ou no projeto, mas não permissões em nível de cluster. - Cria uma atribuição de função dessa conta de serviço à função.
Depois que essas etapas forem concluídas, os pods do painel de controle serão provisionados e a conta de serviço implantará o restante do cluster de Big Data.
Como consequência, o usuário que fará a implantação precisará ter permissões para:
- Listar os namespaces no cluster (1).
- Corrigir o namespace novo ou existente com o rótulo (2).
- Criar a conta de serviço
sa-mssql-controller, a função<namespaced>-admine a associação de função (3-5).
A função admin padrão não tem essas permissões e, portanto, o usuário que implanta o cluster de Big Data precisará ter, pelo menos, permissões de administrador no nível de namespace.
Função de cluster necessária para a coleta de métricas de pods e de nós
Do SQL Server 2019 CU5 em diante, o Telegraf exige uma conta de serviço com permissões de função em todo o cluster para coletar as métricas de pods e de nós. Durante a implantação (ou a atualização de implantações existentes), tentamos criar a conta de serviço e a função de cluster necessárias, mas se o usuário que está implantando o cluster ou realizando a atualização não tiver permissões suficientes, a implantação ou a atualização continuará com um aviso e terá sucesso. Nesse caso, as métricas de pods e de nós não serão coletadas. O usuário que está implantando o cluster precisará solicitar a um administrador de cluster que crie a função e a conta de serviço (antes ou depois da implantação ou da atualização). Depois que elas forem criadas, o BDC as usará.
Estas são as etapas para ver como criar os artefatos necessários:
Crie um arquivo metrics-role.yaml com o conteúdo abaixo. Substitua os espaços reservados <clusterName> pelo nome do seu cluster de Big Data.
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: <clusterName>:cr-mssql-metricsdc-reader rules: - apiGroups: - '*' resources: - pods - nodes/stats - nodes/proxy verbs: - get --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: <clusterName>:crb-mssql-metricsdc-reader roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: <clusterName>:cr-mssql-metricsdc-reader subjects: - kind: ServiceAccount name: sa-mssql-metricsdc-reader namespace: <clusterName>Crie a função de cluster e a associação dela:
kubectl create -f metrics-role.yaml
A conta de serviço, a função de cluster e a associação de função de cluster podem ser criadas antes ou depois da implantação do BDC. O Kubernetes atualiza automaticamente a permissão para a conta de serviço do Telegraf. Se elas forem criadas como uma implantação de pod, você verá um atraso de alguns minutos nas métricas de pods e de nós que estão sendo coletadas.
Note
O SQL Server 2019 CU5 apresenta duas opções de recurso para controlar a coleta de métricas de pod e nó. Por padrão, esses parâmetros são definidos como verdadeiro em todos os destinos de ambiente, exceto no OpenShift, no qual o padrão é substituído.
Personalize essas configurações na seção de segurança do arquivo de configuração de implantação control.json:
"security": {
...
"allowNodeMetricsCollection": false,
"allowPodMetricsCollection": false
}
Se essas configurações forem definidas como false, o fluxo de trabalho de implantação do BDC não tentará criar a conta de serviço, a função de cluster e a associação para o Telegraf.
Uso da conta de serviço padrão de dentro de um pod de cluster de Big Data
Para obter um modelo de segurança mais rígido, a CU5 do SQL Server 2019 desabilitou a montagem por credenciais padrão para a conta de serviço do Kubernetes padrão dentro do pods dos BDC. Isso se aplica a implantações novas e atualizadas na CU5 ou versões posteriores.
O token de credencial dentro dos pods pode ser usado para acessar o servidor de API do Kubernetes, e o nível de permissões depende das configurações da política de autorização do Kubernetes. Se você tiver casos de uso específicos que exijam a reversão para o comportamento anterior da CU5, apresentaremos na CU6 uma nova opção de recurso para que seja possível ativar a montagem automática no momento da implantação. Você pode fazer isso usando o arquivo de implantação de configuração control.json e definindo automountServiceAccountToken como true. Execute este comando para atualizar essa definição no arquivo de configuração personalizado control.json usando CLI de Dados do Azure (azdata):
azdata bdc config replace -c custom-bdc/control.json -j "$.security.automountServiceAccountToken=true"