Este documento aborda a forma de encriptar discos com chaves de encriptação fornecidas pelo cliente.
Para obter informações sobre a encriptação de disco, consulte o artigo Acerca da encriptação de disco.
Para ver informações sobre a encriptação de discos com chaves de encriptação geridas pelo cliente (CMEK), consulte Proteja os recursos através de chaves do Cloud KMS.
A utilização de CSEKs significa que fornece as suas próprias chaves de encriptação e o Compute Engine usa as suas chaves para proteger os dados usados para encriptar e desencriptar os seus dados. Google-owned and Google-managed encryption keys Apenas os utilizadores que podem fornecer a chave correta podem usar recursos protegidos por uma chave de encriptação fornecida pelo cliente (CSEK).
A Google não armazena as suas chaves nos respetivos servidores e não pode aceder aos seus dados protegidos, a menos que faculte a chave. Isto também significa que, se se esquecer ou perder a chave, não existe forma de a Google recuperar a chave ou recuperar quaisquer dados encriptados com a chave perdida.
Quando elimina um volume do disco persistente, a Google rejeita as chaves de cifragem, o que torna os dados irrecuperáveis. Este processo é irreversível.
Antes de começar
- Leia acerca dos discos, imagens e instantâneos de discos.
-
Se ainda não o tiver feito, configure a autenticação.
A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
- Set a default region and zone.
Python
Para usar os Python exemplos nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as Credenciais predefinidas da aplicação com as suas credenciais de utilizador.
Instale a CLI Google Cloud.
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para mais informações, consulte Set up authentication for a local development environment.
REST
Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.
Instale a CLI Google Cloud.
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.
Restrições
Para CSEK, aplicam-se as seguintes restrições:
Restrições gerais
A disponibilidade das chaves de encriptação fornecidas pelo cliente depende da localização da sua conta de faturação e não da localização do recurso.
As chaves de encriptação fornecidas pelos clientes não estão disponíveis para contas de faturação que se encontram nos seguintes países:
- Brasil
- Índia
Restrições técnicas
Só pode encriptar novos discos persistentes com a sua própria chave. Não pode encriptar discos persistentes existentes com a sua própria chave.
Não pode usar as suas próprias chaves com discos SSD locais porque os discos SSD locais usam Google-owned and Google-managed encryption keys. As chaves são eliminadas quando a VM é terminada.
O Compute Engine não armazena chaves de encriptação com modelos de instâncias, pelo que tem de armazenar as suas próprias chaves no KMS para encriptar discos num grupo de instâncias gerido.
Não é possível suspender instâncias com discos protegidos por CSEK anexados.
Especificações
Esta secção descreve a especificação de encriptação e o formato da CSEK.
Encriptação
O Compute Engine usa a sua chave de encriptação para proteger as chaves de encriptação da Google com a encriptação AES-256.
Formato de chave obrigatório
A geração e a gestão da chave são da sua responsabilidade. Tem de fornecer uma chave que seja uma string de 256 bits codificada na base64 padrão RFC 4648 para o Compute Engine.
Segue-se um exemplo de uma chave codificada em base64, gerada com a string "Hello from Google Cloud Platform"
SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=
Pode ser gerado através do seguinte script:
read -sp "String:" ; \ [[ ${#REPLY} == 32 ]] && \ echo "$(echo -n "$REPLY" | base64)" || \ (>&2 echo -e "\nERROR:Wrong Size"; false)
Encriptação de chaves RSA
Além de codificar a chave em base64, pode, opcionalmente, encapsular a chave com um certificado de chave pública RSA fornecido pela Google, codificar a chave em base64 e, em seguida, usar essa chave nos seus pedidos.
A união RSA é um processo no qual usa uma chave pública para encriptar os seus dados. Depois de os dados serem encriptados com a chave pública, só podem ser desencriptados com a chave privada respetiva. Neste caso, a chave privada é conhecida apenas pelos serviços Google Cloud . Ao encapsular a sua chave através do certificado RSA, garante que apenas os serviços Google Cloud podem desencapsular a sua chave e usá-la para proteger os seus dados.
Para mais informações, consulte o artigo Encriptação RSA.
Para criar uma chave envolvida em RSA para o Compute Engine, faça o seguinte:
- Encapsule a sua chave com a chave pública fornecida num certificado que o Compute Engine gere. Certifique-se de que envolve a chave com o preenchimento OAEP e não com o preenchimento PKCS #1 v1.5.
- Codifique a chave envolvida em RSA através da codificação base64 padrão.
Transfira o certificado público mantido pelo Compute Engine a partir de:
https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
Existem várias formas de gerar e aplicar o wrapper RSA à sua chave. Use um método que lhe seja familiar. Seguem-se dois exemplos de encapsulamento RSA da chave que pode usar.
Exemplo 1
As instruções seguintes usam o utilitário de linha de comandos openssl para aplicar o RSA-wrap e codificar uma chave.
Opcional: gere uma chave aleatória de 256 bits (32 bytes). Se já tiver uma chave que quer usar, pode ignorar este passo. Existem várias formas de gerar uma chave. Por exemplo:
$ head -c 32 /dev/urandom | LC_CTYPE=C tr '\n' = > mykey.txt
Transfira o certificado de chave pública:
$ curl -s -O -L https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
Extraia a chave pública do certificado:
$ openssl x509 -pubkey -noout -in google-cloud-csek-ingress.pem > pubkey.pem
Aplique o wrapper RSA à sua chave, certificando-se de que substitui
mykey.txt
pelo seu próprio ficheiro de chave.$ openssl rsautl -oaep -encrypt -pubin -inkey pubkey.pem -in mykey.txt -out rsawrappedkey.txt
Codifique a chave envolvida em RSA em base64.
$ openssl enc -base64 -in rsawrappedkey.txt | tr -d '\n' | sed -e '$a\' > rsawrapencodedkey.txt
Exemplo 2
Segue-se um exemplo de script Python que gera uma string aleatória de 256 bits (32 bytes) e cria uma chave envolvida em RSA codificada em base64 através da biblioteca cryptography:
A sua chave já está pronta a usar!
Use uma chave envolvida em RSA
Através da CLI do Google Cloud, pode fornecer uma chave normal e uma chave envolvida em RSA da mesma forma.
Na API, use a propriedade
sha256
em vez derawKey
se quiser usar uma chave envolvida em RSA.Encriptar recursos com CSEK através da ferramenta de linha de comandos
Configuração
As chaves de encriptação podem ser usadas através da CLI do Google Cloud.
Ficheiro de chave
Quando usa a ferramenta de linha de comandos
gcloud compute
para definir as chaves, fornece chaves codificadas através de um ficheiro de chaves que contém as chaves codificadas como uma lista JSON. Um ficheiro de chaves pode conter várias chaves, o que lhe permite gerir muitas chaves num único local. Em alternativa, pode criar ficheiros de chave únicos para processar cada chave separadamente. Um ficheiro de chave só é utilizável com a CLI gcloud. Quando usar REST, tem de fornecer a chave diretamente no seu pedido.Cada entrada no ficheiro de chaves tem de fornecer:
- O URI totalmente qualificado para o recurso que a chave protege
- A chave correspondente
- O tipo de chave,
raw
oursa-encrypted
Quando usa o ficheiro de chave nos seus pedidos, a ferramenta procura recursos correspondentes e usa as chaves respetivas. Se não forem encontrados recursos correspondentes, o pedido falha.
Um ficheiro de chave de exemplo tem o seguinte aspeto:
[ { "uri": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks/example-disk", "key": "acXTX3rxrKAFTF0tYVLvydU1riRZTvUNC4g5I11NY+c=", "key-type": "raw" }, { "uri": "https://www.googleapis.com/compute/v1/projects/myproject/global/snapshots/my-private-snapshot", "key": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==", "key-type": "rsa-encrypted" } ]
Práticas recomendadas para gerir o ficheiro de chave
Se usar um ficheiro de chave, restrinja o acesso ao ficheiro apenas às pessoas que precisam dele. Certifique-se de que define as autorizações adequadas nestes ficheiros e considere encriptá-los com ferramentas adicionais:
- No Windows, considere usar o BitLocker ou o sistema de encriptação de ficheiros (EFS).
- No macOS, considere usar o FileVault 2.
- No Linux, considere usar a configuração unificada de chaves do Linux (LUKS) ou o eCryptfs.
Encriptar um novo disco persistente com CSEK
Pode encriptar um novo disco persistente fornecendo uma chave durante a criação da VM ou do disco.
Consola
Aceda à página Discos.
Clique em Criar disco e introduza as propriedades do novo disco.
Em Encriptação, selecione Chave fornecida pelo cliente.
Indique a chave de encriptação do disco na caixa de texto e selecione Chave envolvida se a chave tiver sido envolvida com a chave RSA pública.
gcloud
Na ferramenta
gcloud compute
, encripte um disco com a flag--csek-key-file
durante a criação da VM. Se estiver a usar uma chave envolvida em RSA, use o componentegcloud beta
:gcloud (beta) compute instances create example-instance --csek-key-file example-file.json
Para encriptar um disco persistente autónomo:
gcloud (beta) compute disks create example-disk --csek-key-file example-file.json
REST
Pode encriptar um disco através da propriedade
diskEncryptionKey
e fazendo um pedido à API v1 para uma chave não processada (não envolvida em RSA) ou à API beta para uma chave envolvida em RSA. Indique uma das seguintes propriedades no seu pedido:rawKey
: se a chave estiver codificada em base64rsaEncryptedKey
: se a sua chave estiver envolvida em RSA e codificada em base64
Por exemplo, para encriptar um novo disco durante a criação da VM com uma chave com wrapper RSA:
POST https://compute.googleapis.com/compute/beta/projects/myproject/zones/us-central1-a/instances { "machineType": "zones/us-central1-a/machineTypes/e2-standard-2", "disks": [ { "type": "PERSISTENT", "diskEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/debian-9-stretch-v20170619" }, "boot": true } ], ... }
Da mesma forma, também pode usar a API REST para criar um novo disco persistente autónomo e encriptá-lo com a sua própria chave:
POST https://compute.googleapis.com/compute/beta/projects/myproject/zones/ us-central1-a/disks?sourceImage=https%3A%2F%2Fwww.googleapis.com%2Fcompute%2F alpha%2Fprojects%2Fdebian-cloud%2Fglobal%2Fimages%2Fdebian-9-stretch-v20170619 { "name": "new-encrypted-disk-key", "diskEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, "type": "zones/us-central1-a/diskTypes/pd-standard" }
Crie um instantâneo a partir de um disco encriptado com CSEK
Se criar um instantâneo a partir de um disco encriptado, o instantâneo também tem de ser encriptado. Tem de especificar uma chave para encriptar a captura de ecrã. Não pode converter discos encriptados nem instantâneos encriptados para usar a encriptação predefinida do Compute Engine, a menos que crie uma nova imagem de disco e um novo disco persistente.
Os instantâneos de discos encriptados com CSEK são sempre instantâneos completos. Isto difere das instantâneas de discos encriptados com chaves de encriptação geridas pelo cliente (CMEK), que são incrementais. Os instantâneos têm preços baseados no tamanho total do instantâneo, pelo que um instantâneo completo pode custar mais do que um instantâneo incremental.
Para criar um instantâneo de disco persistente a partir de um disco encriptado, o seu pedido de criação de instantâneo tem de fornecer a chave de encriptação que usou para encriptar o disco persistente.
Reveja as práticas recomendadas para instantâneos de discos persistentes antes de criar o seu instantâneo.
Consola
Aceda à página Instantâneos.
Clique em Criar instantâneo.
Em Disco de origem, escolha o disco encriptado do qual quer criar uma captura de ecrã.
Indique a chave de encriptação do disco na caixa de texto e selecione Chave envolvida se a chave tiver sido envolvida com a chave RSA pública.
Encriptar a nova imagem instantânea fornecendo uma chave de encriptação adicional na secção Encriptação.
REST
Para fazer o pedido, indique a propriedade
sourceDiskEncryptionKey
para aceder ao disco persistente de origem. Tem de encriptar a nova imagem instantânea através da propriedadesnapshotEncryptionKey
.Faça um pedido à API v1 para uma chave não processada (não envolvida em RSA) ou à API Beta para uma chave envolvida em RSA.
POST https://compute.googleapis.com/compute/beta/projects/myproject/zones/us-central1-a/disks/example-disk/createSnapshot { "snapshotEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, "sourceDiskEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, "name": "snapshot-encrypted-disk" }
A propriedade
sourceDiskEncryptionKey
tem de corresponder à chave usada para encriptar o disco persistente. Caso contrário, o pedido falha.O elemento
snapshotEncryptionKey
permite-lhe fornecer uma chave para encriptar o instantâneo, de modo que, se o instantâneo for usado para criar novos discos persistentes, tem de ser fornecida uma chave correspondente. Esta chave tem de seguir o formato de chave anterior. Também pode optar por deixar esta propriedade indefinida e a captura de ecrã pode ser usada para criar novos discos persistentes sem precisar de uma chave.Crie uma nova imagem a partir de um disco ou de uma imagem personalizada encriptada com CSEK
Pode criar imagens personalizadas a partir de discos persistentes encriptados ou copiar imagens encriptadas. Não pode usar a consola para copiar imagens. Use a CLI do Google Cloud ou a API REST para copiar imagens.
Consola
Aceda à página Imagens.
Clique em Criar imagem.
Em Disco de origem, escolha o disco encriptado do qual quer criar uma imagem.
Em Encriptação, selecione uma solução de gestão de chaves de encriptação.
Se a chave tiver sido envolvida com a chave RSA pública, selecione Chave envolvida.
gcloud
Siga as instruções para criar uma imagem e adicione a flag
--csek-key-file
com um caminho para o ficheiro de chave de encriptação para o objeto de origem encriptado. Use o componentegcloud beta
se estiver a usar uma chave envolvida em RSA:gcloud (beta) compute images create .... --csek-key-file example-file.json
Se quiser encriptar a nova imagem com a sua chave, adicione a chave ao ficheiro de chaves:
[ { "uri": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks/source-disk", "key": "acX3RqzxrKAFTF0tYVLvydU1riRZTvUNC4g5I11NY-c=", "key-type": "raw" }, { "uri": "https://www.googleapis.com/compute/v1/projects/myproject/global/snapshots/the-new-image", "key": "TF0t-cSfl7CT7xRF1LTbAgi7U6XXUNC4zU_dNgx0nQc=", "key-type": "raw" } ]
REST
O seu pedido de criação da API tem de conter a propriedade da chave de encriptação para o objeto de origem. Por exemplo, inclua uma das seguintes propriedades, dependendo do tipo de objeto de origem:
- Disco persistente:
sourceDiskEncryptionKey
- Imagem:
sourceImageEncryptionKey
Inclua também as propriedades
rawKey
oursaEncryptedKey
, consoante o tipo de chave. Faça um pedido à API v1 para uma chave não processada (não envolvida em RSA) ou à API beta para uma chave envolvida em RSA. O exemplo seguinte converte um disco persistente encriptado e envolvido em RSA numa imagem que usa a mesma chave de encriptação.POST https://compute.googleapis.com/compute/beta/projects/myproject/global/images { "name": "image-encrypted-disk", "sourceDiskEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" } "imageEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, "sourceDisk": "projects/myproject/zones/us-central1-a/disks/source-disks" }
A propriedade
imageEncryptionKey
opcional permite-lhe fornecer uma chave para encriptar a imagem. Assim, quando a imagem é usada para criar novos discos persistentes, tem de ser fornecida uma chave correspondente. Esta chave tem de seguir o mesmo formato de chave descrito acima. Também pode optar por deixar esta propriedade indefinida e a imagem pode ser usada para criar novos discos persistentes sem precisar de uma chave.Criptografe uma imagem importada com CSEK
Pode encriptar uma nova imagem quando importa manualmente uma imagem personalizada para o Compute Engine. Antes de poder importar uma imagem, tem de criar e comprimir um ficheiro de imagem de disco e carregar esse ficheiro comprimido para o Cloud Storage.
Importe a imagem personalizada do Compute Engine que quer encriptar. Especifique o URI do ficheiro comprimido e também um caminho para o ficheiro da chave de encriptação.
Consola
Aceda à página Imagens.
Clique em Criar imagem.
Em Origem, escolha Ficheiro do Cloud Storage.
Em Ficheiro do Cloud Storage, introduza o URI do Cloud Storage.
Em Encriptação, escolha Chave fornecida pelo cliente e indique a chave de encriptação para encriptar a imagem na caixa de texto.
gcloud
Use o comando
compute images create
para criar uma nova imagem e especifique a flag--csek-key-file
com um ficheiro de chave de encriptação. Se estiver a usar uma chave envolvida em RSA, use o componentegcloud beta
:gcloud (beta) compute images create [IMAGE_NAME] \ --source-uri gs://[BUCKET_NAME]/[COMPRESSED_FILE] \ --csek-key-file [KEY_FILE]
Substitua o seguinte:
[IMAGE_NAME]
: o nome da nova imagem personalizada.[BUCKET_NAME]
: o nome do contentor do Cloud Storage que contém o ficheiro de imagem comprimido.[COMPRESSED_FILE]
: o nome do ficheiro de imagem comprimido.[KEY_FILE]
: o caminho para um ficheiro de chave de encriptação na sua estação de trabalho local.
REST
Para encriptar uma nova imagem criada a partir de um ficheiro RAW, adicione a nova propriedade
imageEncryptionKey
à solicitação de criação de imagens, seguida derawKey
oursaEncryptedKey
. Faça um pedido à API v1 para uma chave não processada (não envolvida em RSA) ou à API Beta para uma chave envolvida em RSA.POST https://compute.googleapis.com/compute/beta/projects/myproject/global/images { "rawDisk": { "source": "http://storage.googleapis.com/example-image/example-image.tar.gz" }, "name": "new-encrypted-image", "sourceType": "RAW", "imageEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" } }
Crie um disco persistente a partir de um recurso encriptado com CSEK
Crie um disco a partir de um instantâneo encriptado com CSEK
Consola
Aceda à página Discos.
Clique em Criar disco.
Em Tipo de origem, selecione Snapshot.
Em Encriptação, selecione uma solução de gestão de chaves de encriptação.
Se a chave tiver sido envolvida com a chave RSA pública, selecione Chave envolvida.
gcloud
Na ferramenta
gcloud compute
, forneça a chave de encriptação para a captura de ecrã usando a flag--csek-key-file
quando criar o disco. Se estiver a usar uma chave envolvida em RSA, use o componentegcloud beta
:gcloud (beta) compute disks create ... --source-snapshot example-snapshot --csek-key-file example-file.json
REST
Para usar uma captura de ecrã encriptada, indique o
sourceSnapshotEncryptionKey
no seu pedido, seguido derawKey
oursaEncryptedKey
. Faça um pedido à API v1 para uma chave não processada (não envolvida em RSA) ou à API Beta para uma chave envolvida em RSA. Por exemplo, para um novo disco persistente autónomo com um instantâneo encriptado:POST https://compute.googleapis.com/compute/beta/projects/myproject/zones/us-central1-a/disks { "name": "disk-from-encrypted-snapshot", "sourceSnapshot": "global/snapshots/encrypted-snapshot", "sourceSnapshotEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" } }
Crie um disco a partir de uma imagem encriptada com CSEK
Consola
Aceda à página Discos.
Clique em Criar disco.
Em Tipo de origem, selecione Imagem.
Em Encriptação, selecione uma solução de gestão de chaves de encriptação.
Se a chave tiver sido envolvida com a chave RSA pública, selecione Chave envolvida.
gcloud
Na ferramenta
gcloud compute
, forneça a chave de encriptação para a imagem através da flag--csek-key-file
quando criar o disco. Se estiver a usar uma chave envolvida em RSA, use o componentegcloud beta
:gcloud (beta) compute disks create ... --image example-image --csek-key-file example-file.json
REST
Para usar uma imagem encriptada, forneça o elemento
sourceImageEncryptionKey
, seguido derawKey
oursaEncryptedKey
. Faça um pedido à API v1 para uma chave não processada (não envolvida em RSA) ou à API Beta para uma chave envolvida em RSA.POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks { "name": "disk-from-encrypted-image", "sourceImageEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, "sourceImage": "global/images/encrypted-image" }
Anexar um disco encriptado com CSEK a uma nova VM
Consola
Aceda à página Criar uma instância.
Na secção Disco de arranque, clique em Alterar e faça o seguinte:
- Na página Disco de arranque, clique no separador Discos existentes.
- Na lista Disco, escolha um disco encriptado existente para anexar à VM.
Introduza a chave de encriptação na caixa de texto e selecione Chave envolvida se a chave tiver sido envolvida com a chave RSA pública.
Clique em Selecionar.
Continue com o processo de criação da VM.
gcloud
Para criar uma VM e anexar um disco encriptado, crie um ficheiro de chave e faculte a chave através da flag
--csek-key-file
quando criar a VM. Se estiver a usar uma chave envolvida em RSA, use o componentegcloud beta
:gcloud (beta) compute instances create example-instance \ --disk name=example-disk,boot=yes \ --csek-key-file example-file.json
REST
Crie uma VM com a API Compute Engine e forneça o
rawKey
ou orsaEncryptedKey
com a especificação do disco. Faça um pedido à API v1 para uma chave não processada (não envolvida em RSA) ou à API Beta para uma chave envolvida em RSA.Segue-se um fragmento de um exemplo de especificação de disco:
"disks": [ { "deviceName": "encrypted-disk", "source": "projects/myproject/zones/us-central1-f/disks/encrypted-disk", "diskEncryptionKey": { "rawKey": "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=" } } ]
Iniciar ou reiniciar VMs com discos encriptados com CSEK
Para obter detalhes sobre como parar ou iniciar uma VM com discos encriptados, leia o artigo Reiniciar uma VM com um disco encriptado.
Usar a linha de comandos para criar recursos mistos
Se quiser criar uma combinação de recursos encriptados pelo cliente e encriptados de forma padrão num único pedido com a Google Cloud CLI, pode usar a flag
--csek-key-file
com um ficheiro de chave e a flag--no-require-csek-key-create
no seu pedido. Ao fornecer ambas as flags, o CLI gcloud cria todos os recursos encriptados pelo cliente que estão explicitamente definidos no seu ficheiro de chaves e também cria todos os recursos padrão que especificar.Por exemplo, suponha que um ficheiro de chave contém o seguinte:
[ { "uri": "https://www.googleapis.com/compute/beta/projects/myproject/zones/us-central1-a/disks/example-disk", "key": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==", "key-type": "rsa-encrypted" } ]
Se quiser criar uma VM com um disco encriptado pelo cliente usando o ficheiro de chave e, em simultâneo, criar uma VM com um disco encriptado de forma padrão no mesmo pedido, pode fazê-lo da seguinte forma:
gcloud beta compute instances create example-disk example-disk-2 \ --csek-key-file mykeyfile.json --no-require-csek-key-create
Normalmente, não seria possível criar
example-disk-2
se especificasse a flag--csek-key-file
, porque o disco não está explicitamente definido no ficheiro de chaves. Ao adicionar--no-require-csek-key-create
, são criados ambos os discos, um encriptado com o ficheiro de chave e o outro encriptado comGoogle-owned and managed keys.Remova a CSEK de um disco persistente
Pode desencriptar o conteúdo de um disco encriptado pelo cliente e criar um novo disco que use a encriptação do lado do servidor. Google-owned and managed keys
- Crie uma imagem do disco encriptado e especifique a encriptação automática para a nova imagem.
- Use a nova imagem para criar um novo disco persistente.
Depois de criar o novo disco persistente, o Compute Engine usa o Google-owned and managed keys para proteger o conteúdo do disco. Todos os instantâneos que criar a partir desse disco também têm de usar Google-owned and managed keys
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-09-19 UTC.
-