Girar a Instância Gerenciada SQL habilitada pelo keytab gerenciado pelo cliente do Azure Arc
Este artigo descreve como girar keytabs gerenciados pelo cliente para a Instância Gerenciada SQL habilitada pelo Azure Arc. Essas keytabs são usadas para habilitar logons do Ative Directory para a instância gerenciada.
Pré-requisitos:
Antes de prosseguir com este artigo, você deve ter um conector do Ative Directory no modo keytab gerenciado pelo cliente e uma Instância Gerenciada do SQL habilitada pelo Azure Arc criada.
- Implantar um conector do Ative Directory keytab gerenciado pelo cliente
- Implantar e conectar uma Instância Gerenciada SQL habilitada pelo Azure Arc
Como girar keytabs gerenciados pelo cliente em uma instância gerenciada
As seguintes etapas precisam ser seguidas para girar a tecla tab:
- Obtenha
kvno
valor para a geração atual de credenciais para a conta do Ative Directory do SQL MI. - Crie um novo arquivo keytab com entradas para a geração atual de credenciais. Especificamente, o valor deve corresponder à
kvno
etapa (1.) acima. - Atualize o novo arquivo keytab com novas entradas para as novas credenciais da conta do Ative Directory do SQL MI.
- Crie um segredo do kubernetes contendo o conteúdo do novo arquivo keytab no mesmo namespace que o SQL MI.
- Edite a especificação SQL MI para apontar a configuração secreta keytab do Ative Directory para esse novo segredo.
- Altere a senha no domínio do Ative Directory.
Fornecemos os seguintes scripts PowerShell e bash que cuidarão das etapas de 1 a 5 para você:
rotate-sqlmi-keytab.sh
- Este script bash usaktutil
ouadutil
(se a--use-adutil
bandeira for especificada) para gerar o novo keytab para você.rotate-sqlmi-keytab.ps1
- Este script do PowerShell usaktpass.exe
para gerar o novo keytab para você.
Executar o script acima resultaria no seguinte arquivo keytab para o usuário arcsqlmi@CONTOSO.COM
, segredo sqlmi-keytab-secret-kvno-2-3
e namespace test
:
KVNO Timestamp Principal
---- ------------------- ------------------------------------------------------
2 02/16/2023 17:12:05 arcsqlmiuser@CONTOSO.COM (aes256-cts-hmac-sha1-96)
2 02/16/2023 17:12:05 arcsqlmiuser@CONTOSO.COM (arcfour-hmac)
2 02/16/2023 17:12:05 MSSQLSvc/arcsqlmi.contoso.com@CONTOSO.COM (aes256-cts-hmac-sha1-96)
2 02/16/2023 17:12:05 MSSQLSvc/arcsqlmi.contoso.com@CONTOSO.COM (arcfour-hmac)
2 02/16/2023 17:12:05 MSSQLSvc/arcsqlmi.contoso.com:31433@CONTOSO.COM (aes256-cts-hmac-sha1-96)
2 02/16/2023 17:12:05 MSSQLSvc/arcsqlmi.contoso.com:31433@CONTOSO.COM (arcfour-hmac)
3 02/16/2023 17:13:41 arcsqlmiuser@CONTOSO.COM (aes256-cts-hmac-sha1-96)
3 02/16/2023 17:13:41 arcsqlmiuser@CONTOSO.COM (arcfour-hmac)
3 02/16/2023 17:13:41 MSSQLSvc/arcsqlmi.contoso.com@CONTOSO.COM (aes256-cts-hmac-sha1-96)
3 02/16/2023 17:13:41 MSSQLSvc/arcsqlmi.contoso.com@CONTOSO.COM (arcfour-hmac)
3 02/16/2023 17:13:41 MSSQLSvc/arcsqlmi.contoso.com:31433@CONTOSO.COM (aes256-cts-hmac-sha1-96)
3 02/16/2023 17:13:41 MSSQLSvc/arcsqlmi.contoso.com:31433@CONTOSO.COM (arcfour-hmac)
E a seguinte especificação updated-secret.yaml:
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: sqlmi-keytab-secret-kvno-2-3
namespace: test
data:
keytab:
<keytab-contents>
Finalmente, altere a senha arcsqlmi
da conta de usuário no controlador de domínio para o domínio contoso.com
do Ative Directory:
Abra o Gerenciador do Servidor no controlador de domínio para o domínio
contoso.com
do Ative Directory . Você pode procurar o Gerenciador do Servidor ou abri-lo através do menu Iniciar.Vá para Ferramentas>Usuários e Computadores do Ative Directory
Selecione o usuário para o qual você deseja alterar a senha. Clique com o botão direito do mouse para selecionar o usuário. Selecione Redefinir senha:
Digite nova senha e selecione
OK
.
Solução de problemas de erros após a rotação
Caso haja erros ao tentar usar a Autenticação do Ative Directory depois de concluir a arc-sqlmi
rotação do keytab, os seguintes arquivos no contêiner no pod SQL MI são um bom lugar para começar a investigar a causa raiz:
security.log
localizado em/var/opt/mssql/log
- Este arquivo de log tem logs para interações do SQL com o domínio do Ative Directory.errorlog
localizado em/var/opt/mssql/log
- Este arquivo de log contém logs do SQL Server em execução no contêiner.mssql.keytab
localizado em/var/run/secrets/managed/keytabs/mssql
- Verifique se esse arquivo keytab contém as entradas recém-atualizadas e corresponde ao arquivo keytab criado usando os scripts fornecidos acima. O arquivo keytab pode ser lido usando oklist
comando, ou seja,klist -k mssql.keytab -e
Além disso, depois de obter o kerberos Ticket-Granting Ticket (TGT) usando kinit
o comando, verifique se o kvno
do usuário SQL corresponde ao mais alto kvno
no mssql.keytab
arquivo no arc-sqlmi
contêiner. Por exemplo, para arcsqlmi@CONTOSO.COM
o usuário:
- Obtenha o kerberos TGT do domínio do Ative Directory executando
kinit arcsqlmi@CONTOSO.COM
o . Isso solicitará uma entrada do usuário para a senha doarcsqlmi
usuário. - Uma vez que isso seja bem-sucedido, o pode ser consultado
kvno
executandokvno arcsqlmi@CONTOSO.COM
.
Também podemos habilitar o log de depuração para o kinit
comando executando o seguinte: KRB5_TRACE=/dev/stdout kinit -V arcsqlmi@CONTOSO.COM
. Isso aumenta a verbosidade e envia os logs para stdout à medida que o comando está sendo executado.