Revezamento de chaves
A rotação de chaves é o ato de alterar o material criptográfico subjacente contido em uma chave de criptografia de chaves (KEK, na sigla em inglês). Ela pode ser acionada de forma automática como parte de uma rotação programada ou manual, geralmente após um incidente de segurança em que as chaves podem ter sido comprometidas. A rotação de chaves substitui apenas o campo na chave que contém os dados brutos de criptografia/criptografia.
Rotação automática de chaves
O serviço de gerenciamento de chaves (KMS, na sigla em inglês) da AWS é compatível com a rotação automática de chaves do KMS. Quando ativada, a AWS gera automaticamente novo material de chave criptográfica para sua chave uma vez por ano. Não é preciso realizar ações manuais.
Após uma rotação de chaves, o GKE na AWS criptografa cada novo secret com a nova chave. Qualquer secret criado anteriormente ainda é descriptografado com a chave original. Por isso, a AWS mantém o material de chave mais antigo do CMK em perpetuidade, permitindo que DEKs antigas sejam descriptografadas quando os Secrets antigos forem lidos.
Use o comando a seguir para ver se uma chave do KMS tem a rotação automática ativada ou não:
aws kms get-key-rotation --key-id KMS_KEY_ID
Substitua KMS_KEY_ID
pelo ID da chave do AWS KMS.
Para ativar a rotação automática de chaves, execute este comando:
aws kms enable-key-rotation --key-id KMS_KEY_ID
Rotação manual de chaves
Nesta seção, explicamos como alternar manualmente as chaves de configuração do plano de controle ou do pool de nós.
Chave de configuração do plano de controle
Para alternar manualmente a chave de configuração do plano de controle, execute as seguintes etapas:
Crie uma nova chave do Cloud Key Management Service chamada. Salve o valor do ARN da chave KMS. Você precisará dele mais tarde.
Verifique se o papel do IAM associado ao cluster tem permissões para criptografar e descriptografar usando a nova chave.
Use o comando
gcloud container aws clusters update
para atualizar a chave de criptografia.gcloud container aws clusters update CLUSTER_NAME \ --location=GOOGLE_CLOUD_LOCATION \ --config-encryption-kms-key-arn=CONFIG_ENCRYPTION_KMS_KEY_ARN
Substitua:
CLUSTER_NAME
: o nome do cluster.GOOGLE_CLOUD_LOCATION
: a região compatível com o Google Cloud que gerencia seu cluster, por exemplo,us-west1
CONFIG_ENCRYPTION_KMS_KEY_ARN
: sua nova chave KMS de ARN
Volume raiz do plano de controle
Para fazer a rotação manual da chave de volume raiz do plano de controle, execute as seguintes etapas:
Crie uma nova chave do Cloud Key Management Service chamada. Salve o valor do ARN da chave KMS. Você precisará dele mais tarde.
Verifique se o papel do IAM associado ao cluster tem permissões para criptografar e descriptografar usando a nova chave.
Use o comando
gcloud container aws clusters update
para atualizar a chave de criptografia.gcloud container aws clusters update CLUSTER_NAME \ --location=GOOGLE_CLOUD_LOCATION \ --root-volume-kms-key-arn=ROOT_VOLUME_KMS_KEY_ARN
Substitua:
CLUSTER_NAME
: o nome do cluster.GOOGLE_CLOUD_LOCATION
: a região compatível com o Google Cloud que gerencia seu cluster, por exemplo,us-west1
ROOT_VOLUME_KMS_KEY_ARN
: Nome de Recurso da Amazon (ARN, na sigla em inglês) da chave de KMS da AWS para criptografar o volume raiz
Chave de configuração do pool de nós
Para alternar manualmente a chave de configuração do pool de nós, execute as seguintes etapas:
Crie uma nova chave do Cloud Key Management Service chamada.
Verifique se o papel do IAM associado ao cluster tem permissões para criptografar e descriptografar usando a nova chave.
Atualize o alias do KMS em uso:
aws kms update-alias --alias-name KEY_ALIAS \ --target-key-id CONFIG_ENCRYPTION_KMS_KEY_ARN
Substitua:
KEY_ALIAS
: alias da sua chaveCONFIG_ENCRYPTION_KMS_KEY_ARN
: sua nova chave KMS de ARN
Force o cluster a criptografar novamente todos os secrets do cluster usando a nova chave de criptografia:
kubectl get secrets --all-namespaces -o json | \ kubectl annotate --overwrite -f - encryption-key-rotation-time=`date +"%Y%m%d-%H%M%S"`
Desative a antiga chave KMS da AWS. Para mais informações, consulte Como ativar e desativar chaves.
Volumes raiz do pool de nós
Para fazer a rotação manual da chave de volume raiz do pool de nós, execute as seguintes etapas:
Crie uma nova chave do Cloud Key Management Service chamada.
Verifique se o papel do IAM associado ao cluster tem permissões para criptografar e descriptografar usando a nova chave.
Atualize o alias do KMS em uso:
aws kms update-alias --alias-name KEY_ALIAS \ --target-key-id ROOT_VOLUME_KMS_KEY_ARN
Substitua:
KEY_ALIAS
: alias da sua chaveROOT_ENCRYPTION_KMS_KEY_ARN
: sua nova chave KMS de ARN
Atualize o pool de nós:
gcloud container aws node-pools update NODE_POOL_NAME \ --root-volume-kms-key-arn=ROOT_VOLUME_KMS_KEY_ARN
Substitua:
NODE_POOL_NAME
: nome do pool de nósROOT_VOLUME_KMS_KEY_ARN
: Nome de Recurso da Amazon (ARN, na sigla em inglês) da chave de KMS da AWS para criptografar o volume raiz
Desative a antiga chave KMS da AWS. Para mais informações, consulte Como ativar e desativar chaves.