Impondo o Uso de Imagens Assinadas no Registro
Descubra como impor o uso de imagens assinadas do Oracle Cloud Infrastructure Registry ao implantar aplicativos em um cluster que você criou usando o Kubernetes Engine (OKE).
Por motivos de conformidade e segurança, os administradores de sistema geralmente só querem implantar software em um sistema de produção quando estão satisfeitos que:
- o software vem de uma fonte confiável
- o software não foi modificado desde sua publicação, comprometendo sua integridade
Para atender a esses requisitos, você pode assinar as imagens armazenadas no Oracle Cloud Infrastructure Registry. As imagens assinadas fornecem uma maneira de verificar a origem de uma imagem e sua integridade. O Oracle Cloud Infrastructure Registry permite que usuários ou sistemas enviem imagens para o registro e depois as assinem criando uma assinatura de imagem. Uma assinatura de imagem associa uma imagem a uma chave de criptografia principal obtida do Oracle Cloud Infrastructure Vault.
Os usuários ou os sistemas que extraem uma imagem assinada do Oracle Cloud Infrastructure Registry podem ter certeza de que a origem da imagem é confiável e que a integridade da imagem não foi comprometida. Para obter mais informações, consulte Assinando Imagens para Segurança.
Para melhorar ainda mais a segurança, você pode configurar clusters criados com o Kubernetes Engine para permitir apenas a implantação de imagens do Oracle Cloud Infrastructure Registry que foram assinadas por chaves de criptografia principais específicas. Em alto nível, estas são as etapas que devem ser seguidas:
- Assine imagens no Oracle Cloud Infrastructure Registry com assinaturas de imagem que usem as chaves de criptografia principais do Oracle Cloud Infrastructure Vault (consulte Assinando Imagens para Segurança).
- Crie uma política de verificação de imagem para um cluster que especifique uma ou mais chaves de criptografia principais que deverão ter sido usadas para assinar imagens.
- Ative o cluster para usar a política de verificação de imagem para impor o uso de imagens assinadas adequadamente.
Observe o seguinte:
- Uma imagem no Oracle Cloud Infrastructure Registry pode ser assinada usando várias assinaturas, cada uma associada a uma chave de criptografia principal distinta. Desde que a política de verificação de imagem de um cluster inclua pelo menos uma das chaves de criptografia principais, o cluster permitirá que a imagem seja extraída do Oracle Cloud Infrastructure Registry.
- Você pode especificar até cinco chaves de criptografia principais na política de verificação de imagem de um cluster.
- Se você permitir que um cluster use sua política de verificação de imagem, mas não especificar a(s) chave(s) de criptografia principal(ais) que deve(em) ter sido usada(s) para assinar uma imagem:
- qualquer imagem assinada poderá ser extraída do Oracle Cloud Infrastructure Registry, independentemente das chaves de criptografia principais usadas para assiná-la
- qualquer imagem não assinada poderá ser extraída do Oracle Cloud Infrastructure Registry
- Se você permitir que um cluster use sua política de verificação de imagem, mas o Kubernetes Engine não puder estabelecer conexão com o Oracle Cloud Infrastructure Registry, nenhuma imagem poderá ser extraída do Oracle Cloud Infrastructure Registry.
- Uma imagem no Oracle Cloud Infrastructure Registry é identificada por repositório, nome e uma tag. Além disso, cada versão de uma imagem recebe uma compilação alfanumérica exclusiva. Se você permitir que um cluster use sua política de verificação de imagem, em especificações de pod (e outros arquivos de manifesto), você deverá fazer referência a uma imagem usando a compilação de imagem em vez da tag de imagem. Por exemplo, use:
image: phx.ocir.io/ansh81vru1zp/project01/ngnix-lb@sha256:ee44b399d______49c775b
em vez de simplesmente:
image: phx.ocir.io/ansh81vru1zp/project01/ngnix-lb:latest
Observe que você precisa modificar todas as especificações de pod existentes (e outros arquivos de manifesto que fazem referência a imagens) para usar resumos de imagem em vez de tags de imagem.
- Depois de ativar um cluster para usar sua política de verificação de imagem, talvez você tenha posteriormente uma necessidade urgente de que um pod específico extraia uma imagem que viole a política. Nesse caso, você poderá adicionar a anotação
oracle.image-policy.k8s.io/break-glass: "true"
à especificação do pod. Depois de adicionar a anotação à especificação do pod, ele poderá extrair todas as imagens assinadas e não assinadas do Oracle Cloud Infrastructure Registry, independentemente da política de verificação de imagem do cluster. - Um cluster forçará o uso de imagens assinadas por chaves de criptografia principais incluídas em sua política de verificação de imagem, desde que:
- as imagens sejam extraídas do Oracle Cloud Infrastructure Registry (em vez de outros registros)
- as imagens sejam assinadas usando chaves de criptografia principais obtidas do Oracle Cloud Infrastructure Vault
Políticas Obrigatórias do IAM para Impor o Uso de Imagens Assinadas
Para permitir que os clusters incluam chaves de criptografia principais nas políticas de verificação de imagem, conceda aos clusters permissão para usar chaves do Oracle Cloud Infrastructure Vault. Por exemplo, para conceder essa permissão a um cluster específico na tenancy:
Allow any-user to use keys in tenancy where request.user.id=<CLUSTER_OCID>
Para permitir que os clusters extraiam imagens assinadas do Oracle Cloud Infrastructure Registry, conceda aos clusters permissão para acessar repositórios no Oracle Cloud Infrastructure Registry. Por exemplo, para conceder essa permissão a um cluster específico na tenancy:
Allow any-user to read repos in tenancy where request.user.id=<CLUSTER_OCID>
Para obter exemplos de como criar políticas mais granulares, consulte Criptografando Segredos do Kubernetes em Repouso no Etcd.
Impondo o Uso de Imagens Assinadas
Para habilitar um cluster a permitir que os aplicativos só extraiam as imagens do Oracle Cloud Infrastructure Registry que foram assinadas usando chaves de criptografia principais específicas:
- Se você ainda não tiver acesso a uma chave assimétrica RSA no Oracle Cloud Infrastructure Vault, crie uma ou mais chaves de criptografia principais como chaves assimétricas RSA. Consulte Criando uma Chave de Criptografia Principal.
- Defina uma política de verificação de imagem para o cluster e especifique pelo menos uma chave de criptografia principal que deverá ter sido usada para assinar imagens:
- Na página da lista Clusters, selecione o cluster para o qual você deseja definir uma política de verificação de imagem. Se precisar de ajuda para localizar a página de lista ou o cluster, consulte Listando Clusters.
- Em Recursos, selecione Verificação de Imagem.
- Selecione Editar Verificação de Imagem.
- Selecione Ativar políticas de verificação de imagem neste cluster para permitir que o cluster use a política da verificação de imagem definida.
-
Selecione uma chave de criptografia principal no Oracle Cloud Infrastructure Vault que deverá ter sido usada para assinar imagens.
Se quiser permitir que imagens assinadas por chaves diferentes sejam extraídas, você poderá especificar várias chaves de criptografia principais.
Observe que, se você especificar várias chaves de criptografia principais, uma imagem só precisará ser assinada por uma dessas chaves. Uma imagem não precisa ser assinada por todas as chaves de criptografia principais especificadas. Você pode especificar até cinco chaves de criptografia principais na política de verificação de imagem do cluster.
-
Selecione Salvar Definições de Verificação de Imagem.
De agora em diante, o cluster só poderá extrair as imagens do Oracle Cloud Infrastructure Registry assinadas usando as chaves de criptografia principais incluídas na política de verificação de imagem. As tentativas de extrair imagens não permitidas são gravadas nos logs do aplicativo (consulte Exibindo Logs do Aplicativo nos Nós Gerenciados e nos Nós Autogerenciados).
- Assine as imagens que você deseja que o cluster permita, usando assinaturas de imagem que associam as imagens a uma ou mais chaves de criptografia principais na política de verificação de imagem que você definiu. Consulte Assinando Imagens para Segurança.
- (opcional) Para implantar um aplicativo que extraia uma imagem assinada do Oracle Cloud Infrastructure Registry, siga as etapas em Extraindo Imagens do Registro durante a Implantação e especifique a imagem no arquivo de manifesto do aplicativo.