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.
Esses tutoriais abrangem vários cenários de implantação para a extensão do registro conectado em um cluster do Kubernetes habilitado para Arc. Depois que a extensão do registro conectado for instalada, você poderá sincronizar imagens do registro de nuvem com locais ou locais remotos.
Antes de se aprofundar, reserve um momento para saber como o Kubernetes habilitado para Arc funciona conceitualmente.
O registro conectado pode ser implantado com segurança usando vários métodos de criptografia. Para garantir uma implantação bem-sucedida, siga o guia de início rápido para examinar os pré-requisitos e outras informações pertinentes. Por padrão, o registro conectado é configurado com HTTPS, modo ReadOnly, Distribuição de Confiança e o serviço Cert Manager. Você pode adicionar mais personalizações e dependências conforme for necessário, dependendo do seu cenário.
O que é o serviço Gerenciador de Certificados?
O gerenciador de certificados do registro conectado é um serviço que gerencia os certificados TLS para a extensão de registro conectado em um cluster do kubernetes habilitado para o Azure Arc. Ele garante uma comunicação segura entre o registro conectado e outros componentes manipulando a criação, renovação e distribuição de certificados. Esse serviço pode ser instalado como parte da implantação do registro conectado ou você pode usar um gerenciador de certificados existente se ele já estiver instalado no seu cluster.
O Cert-Manager é um complemento do Kubernetes de software livre que automatiza o gerenciamento e a emissão de certificados TLS de várias fontes. Ele gerencia o ciclo de vida dos certificados emitidos pelos pools de CA criados usando o Serviço de CA, garantindo que sejam válidos e renovados antes de expirarem.
O que é distribuição de confiança?
A distribuição de confiança do registro conectado refere-se ao processo de distribuição segura de confiança entre o serviço de registro conectado e os clientes do Kubernetes em um cluster. Isso é feito usando uma Autoridade de Certificação (AC), como o gerenciador de certificados, para assinar certificados TLS, que são distribuídos para o serviço do Registro e para os clientes. Isso garante que todas as entidades possam se autenticar com segurança, mantendo um ambiente seguro e confiável no cluster do Kubernetes.
Pré-requisitos
Para concluir este tutorial, você precisará de:
- Siga o início rápido para implantar com segurança a extensão do registro conectado.
Implantar a extensão do registro conectado usando o gerenciador de certificados pré-instalado
Neste tutorial, demonstramos como usar um serviço de gerenciador de certificados pré-instalado no cluster. Essa configuração lhe dá controle sobre o gerenciamento de certificados, permitindo que você implemente a extensão do registro conectado com criptografia seguindo as etapas fornecidas:
Execute o comando az-k8s-extension-create no início rápido e defina os parâmetros cert-manager.enabled=true e cert-manager.install=false para determinar se o serviço cert-manager está instalado e habilitado:
az k8s-extension create --cluster-name myarck8scluster \
--cluster-type connectedClusters \
--extension-type Microsoft.ContainerRegistry.ConnectedRegistry \
--name myconnectedregistry \
--resource-group myresourcegroup \
--config service.clusterIP=192.100.100.1 \
--config cert-manager.install=false \
--config-protected-file protected-settings-extension.json
Implante a extensão do registro conectado usando o BYOC (Traga Seu Próprio Certificado)
Neste tutorial, demonstramos como usar seu próprio certificado (BYOC) no cluster. O BYOC permite que você use seu próprio certificado público e par de chaves privadas, fornecendo-lhe controle sobre o gerenciamento de certificados. Essa configuração permite que você implante a extensão do registro conectado com a criptografia seguindo as etapas fornecidas:
Observação
O BYOC é aplicável aos clientes que trazem seu próprio certificado que já é confiável por seus nós do Kubernetes. Não é recomendável atualizar manualmente os nós para confiar nos certificados.
Siga o início rápido e adicione o certificado público e a variável de cadeia de caracteres de chave privada + par de valor.
- Criar o certificado SSL autoassinado com o IP do serviço de registro conectado como SAN
mkdir /certs
openssl req -newkey rsa:4096 -nodes -sha256 -keyout /certs/mycert.key -x509 -days 365 -out /certs/mycert.crt -addext "subjectAltName = IP:<service IP>"
- Obter cadeias de caracteres codificadas em base64 desses arquivos de certificado
export TLS_CRT=$(cat mycert.crt | base64 -w0)
export TLS_KEY=$(cat mycert.key | base64 -w0)
- Exemplo de arquivo de configurações protegidas com segredo no formato JSON:
Observação
O certificado público e o par de chaves privadas devem ser codificados no formato base64 e adicionados ao arquivo de configurações protegido.
{
"connectionString": "[connection string here]",
"tls.crt": $TLS_CRT,
"tls.key": $TLS_KEY,
"tls.cacrt": $TLS_CRT
}
Agora, você pode implantar a extensão do Registro conectado com HTTPS (criptografia TLS) usando o certificado público e o gerenciamento de par de chaves privadas configurando variáveis definidas como
cert-manager.enabled=falseecert-manager.install=false. Com esses parâmetros, o gerenciador de certificados não está instalado ou habilitado, pois o certificado público e o par de chaves privadas são usados para criptografia.Execute o comando az-k8s-extension-create para implantação após a edição do arquivo de configurações protegidas:
az k8s-extension create --cluster-name myarck8scluster \ --cluster-type connectedClusters \ --extension-type Microsoft.ContainerRegistry.ConnectedRegistry \ --name myconnectedregistry \ --resource-group myresourcegroup \ --config service.clusterIP=192.100.100.1 \ --config cert-manager.enabled=false \ --config cert-manager.install=false \ --config-protected-file protected-settings-extension.json
Implantar o registro conectado com o gerenciamento de segredo do Kubernetes
Neste tutorial, demonstramos como usar um segredo do Kubernetes no seu cluster. O segredo do Kubernetes permite que você gerencie com segurança o acesso autorizado entre os pods no cluster. Essa configuração permite que você implante a extensão do registro conectado com a criptografia seguindo as etapas fornecidas:
Siga o início rápido e adicione a variável de cadeia de caracteres secreta do TLS do Kubernetes + par de valor.
- Criar o certificado SSL autoassinado com o IP do serviço de registro conectado como SAN
mkdir /certs
openssl req -newkey rsa:4096 -nodes -sha256 -keyout /certs/mycert.key -x509 -days 365 -out /certs/mycert.crt -addext "subjectAltName = IP:<service IP>"
- Obter cadeias de caracteres codificadas em base64 desses arquivos de certificado
export TLS_CRT=$(cat mycert.crt | base64 -w0)
export TLS_KEY=$(cat mycert.key | base64 -w0)
- Criar o segredo k8s
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
metadata:
name: k8secret
type: kubernetes.io/tls
data:
ca.crt: $TLS_CRT
tls.crt: $TLS_CRT
tls.key: $TLS_KEY
EOF
Exemplo de arquivo de configurações protegidas com segredo no formato JSON:
{ "connectionString": "[connection string here]", "tls.secret": “k8secret” }
Agora, você pode implantar a extensão do Registro conectado com HTTPS (criptografia TLS) usando o gerenciamento de segredo do Kubernetes configurando variáveis definidas como cert-manager.enabled=false e cert-manager.install=false. Com esses parâmetros, o gerenciador de certificados não está instalado ou habilitado, pois o segredo do Kubernetes é usado para criptografia.
Execute o comando az-k8s-extension-create para implantação após a edição do arquivo de configurações protegidas:
az k8s-extension create --cluster-name myarck8scluster \ --cluster-type connectedClusters \ --extension-type Microsoft.ContainerRegistry.ConnectedRegistry \ --name myconnectedregistry \ --resource-group myresourcegroup \ --config service.clusterIP=192.100.100.1 \ --config cert-manager.enabled=false \ --config cert-manager.install=false \ --config-protected-file protected-settings-extension.json
Implantar o registro conectado usando sua própria distribuição de confiança e desabilitar a distribuição de confiança padrão do registro conectado
Neste tutorial, demonstramos como configurar a distribuição de confiança no cluster. Ao usar seu próprio segredo do Kubernetes ou certificado público e pares de chaves privadas, você pode implantar a extensão de registro conectado com criptografia TLS, sua distribuição de confiança inerente e rejeitar a distribuição de confiança padrão do registro conectado. Essa configuração permite que você implante a extensão do registro conectado com a criptografia seguindo as etapas fornecidas:
Siga o início rápido para adicionar o segredo do Kubernetes ou o certificado público e a variável de chave privada + pares de valor no arquivo de configurações protegidas no formato JSON.
Execute o comando az-k8s-extension-create no início rápido e defina os parâmetros
trustDistribution.enabled=false,trustDistribution.skipNodeSelector=falsepara rejeitar a distribuição de confiança do Registro conectado:az k8s-extension create --cluster-name myarck8scluster \ --cluster-type connectedClusters \ --extension-type Microsoft.ContainerRegistry.ConnectedRegistry \ --name myconnectedregistry \ --resource-group myresourcegroup \ --config service.clusterIP=192.100.100.1 \ --config trustDistribution.enabled=false \ --config cert-manager.enabled=false \ --config cert-manager.install=false \ --config-protected-file <JSON file path>
Com esses parâmetros, o gerenciador de certificados não está instalado ou habilitado, além disso, a distribuição de confiança do Registro conectado não é imposta. Em vez disso, você está usando a distribuição de confiança fornecida pelo cluster para estabelecer a confiança entre o Registro conectado e os nós do cliente.
Limpar os recursos
Ao excluir a extensão do Registro conectado implantada, você remove os pods do Registro conectado correspondentes e as configurações de configuração.
Execute o comando az-k8s-extension-delete para excluir a extensão do Registro conectado:
az k8s-extension delete --name myconnectedregistry --cluster-name myarcakscluster \ --resource-group myresourcegroup \ --cluster-type connectedClustersExecute o comando az acr connected-registry delete para excluir o Registro conectado:
az acr connected-registry delete --registry myacrregistry \ --name myconnectedregistry \ --resource-group myresourcegroup
Ao excluir a extensão do Registro conectado e o Registro conectado, você remove todos os recursos e configurações associados.