Rotação de Chaves
A rotação de chaves é o ato de alterar o material criptográfico subjacente contido em uma chave de criptografia (KEK) . Ela pode ser acionada automaticamente como parte de uma rotação programada ou manualmente, geralmente após um incidente de segurança em que as chaves podem ter sido comprometidas. A rotação de chaves substitui apenas o único campo na chave que contém os dados brutos da chave de criptografia/descriptografia.
Rotação Automática de Chaves
O AWS Key Management Service (KMS) oferece suporte à rotação automática de chaves KMS . Quando habilitado, a AWS gera automaticamente um novo material de chave criptográfica para a sua chave uma vez por ano. Nenhuma ação manual é necessária.
Após uma rotação de chaves, o GKE na AWS criptografa cada novo segredo com a nova chave. Qualquer segredo criado anteriormente ainda é descriptografado com sua chave original. Por esse motivo, a AWS mantém o material de chaves mais antigo do CMK perpetuamente, permitindo que DEKs antigos sejam descriptografados quando segredos antigos são lidos.
Você pode ver se uma chave KMS tem rotação automática habilitada ou não com o seguinte comando:
aws kms get-key-rotation --key-id KMS_KEY_ID
Substitua KMS_KEY_ID
pelo ID da sua chave AWS KMS.
Você pode habilitar a rotação automática de chaves executando este comando:
aws kms enable-key-rotation --key-id KMS_KEY_ID
Rotação manual de chaves
Esta seção explica como girar manualmente as chaves de configuração do seu plano de controle ou do pool de nós.
Chave de configuração do plano de controle
Para girar manualmente a chave de configuração do seu plano de controle , execute as seguintes etapas:
Crie uma nova chave do Cloud Key Management Service . Salve o valor do ARN da sua chave KMS. Você o usará mais tarde.
Certifique-se de que a função do IAM associada ao cluster tenha 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 o seguinte:
-
CLUSTER_NAME
: nome do seu cluster -
GOOGLE_CLOUD_LOCATION
: o suportado Google Cloud região que gerencia seu cluster — por exemplo,us-west1
-
CONFIG_ENCRYPTION_KMS_KEY_ARN
: seu novo ARN de chave KMS
-
Volume da raiz do plano de controle
Para girar manualmente a chave de volume raiz do plano de controle , execute as seguintes etapas:
Crie uma nova chave do Cloud Key Management Service . Salve o valor do ARN da sua chave KMS. Você o usará mais tarde.
Certifique-se de que a função do IAM associada ao cluster tenha 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 o seguinte:
-
CLUSTER_NAME
: nome do seu cluster -
GOOGLE_CLOUD_LOCATION
: o suportado Google Cloud região que gerencia seu cluster — por exemplo,us-west1
-
ROOT_VOLUME_KMS_KEY_ARN
: Nome do recurso da Amazon (ARN) da chave AWS KMS para criptografar o volume raiz
-
Chave de configuração do pool de nós
Para girar manualmente sua chave de configuração do pool de nós , execute as seguintes etapas:
Certifique-se de que a função do IAM associada ao cluster tenha 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 o seguinte:
-
KEY_ALIAS
: alias da sua chave existente -
CONFIG_ENCRYPTION_KMS_KEY_ARN
: seu novo ARN de chave KMS
-
Forçar o cluster a criptografar novamente todos os segredos 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"`
Desabilite a chave antiga do AWS KMS. Para obter mais informações, consulte Habilitando e desabilitando chaves .
Volumes raiz do pool de nós
Para girar manualmente a chave de volume raiz do pool de nós , execute as seguintes etapas:
Certifique-se de que a função do IAM associada ao cluster tenha 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 o seguinte:
-
KEY_ALIAS
: alias da sua chave existente -
ROOT_ENCRYPTION_KMS_KEY_ARN
: seu novo ARN de chave KMS
-
Atualize seu pool de nós:
gcloud container aws node-pools update NODE_POOL_NAME \ --root-volume-kms-key-arn=ROOT_VOLUME_KMS_KEY_ARN
Substitua o seguinte:
-
NODE_POOL_NAME
: nome do seu pool de nós -
ROOT_VOLUME_KMS_KEY_ARN
: Nome do recurso da Amazon (ARN) da chave AWS KMS para criptografar o volume raiz
-
Desabilite a chave antiga do AWS KMS. Para obter mais informações, consulte Habilitando e desabilitando chaves .