Validar a assinatura de uma solicitação aprovada
Cada solicitação de Aprovação de acesso aprovada é assinada com uma chave criptográfica para validar a aprovação. As solicitações aprovadas podem ser assinadas com uma chave gerenciada pelo Google ou uma chave do Cloud KMS fornecida pelo cliente.
Ao validar uma assinatura, você pode ter certeza de que a string de bytes do solicitação aprovada serializada é válida. Para concluir a validação do conteúdo da aprovação, é necessário desserializar a mensagem e comparar a mensagem desserializada com o conteúdo da solicitação aprovada.
Antes de começar
Para garantir que a conta de serviço do Access Approval do seu
tem as informações necessárias
permissões para verificar assinaturas de solicitações aprovadas;
peça para o administrador conceder a conta de serviço do Access Approval para o
recurso
Papel do IAM Signatário/verificador de CryptoKey do Cloud KMS (roles/cloudkms.signerVerifier
) na chave, no keyring ou no projeto de chave.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
O administrador também pode conceder à conta de serviço de aprovação de acesso do recurso as permissões necessárias por meio de papéis personalizados ou outros papéis predefinidos.
Validar uma solicitação assinada usando uma chave gerenciada pelo Google
No console do Google Cloud, acesse a página Aprovação de acesso.
Localize e selecione a solicitação de Access Approval aprovada que você quer validar. A página Detalhes da solicitação é aberta.
Em Chave pública gerenciada pelo Google, clique em content_copy Copiar.
Abra o Cloud Shell e salve a chave pública como um novo arquivo chamado
public_key
:echo GOOGLE_MANAGED_PUBLIC_KEY > ./public_key
Substitua
GOOGLE_MANAGED_PUBLIC_KEY
pelo conteúdo do campo Chave pública gerenciada pelo Google.No console do Google Cloud, na página Detalhes da solicitação, em Assinatura, clique em content_copy Copiar.
Abra o Cloud Shell e salve a assinatura como um novo arquivo chamado
signature.txt
:echo SIGNATURE > ./signature.txt
Substitua
SIGNATURE
pelo conteúdo do campo Signature.Decodificar a assinatura usando o comando
base64
e salvar o resultado comodecoded_signature
:base64 ./signature.txt -d > ./decoded_signature
No console do Google Cloud, na página Detalhes da solicitação, em Solicitação de aprovação serializada, clique em content_copy Copiar.
Abra o Cloud Shell e salve a solicitação de aprovação serializada como um novo arquivo chamado
serialized_approval_request.txt
:echo SERIALIZED_APPROVAL_REQUEST > ./serialized_approval_request.txt
Substitua
SERIALIZED_APPROVAL_REQUEST
pelo conteúdo do campo Solicitação de aprovação serializada.Decodifique a solicitação de aprovação serializada e salve o resultado como
decoded_serialized_approval_request
:base64 ./serialized_approval_request.txt -d > ./decoded_serialized_approval_request
Use
openssl
para verificar a assinatura:openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_request
Se a assinatura for válida, a saída será
Verified OK
. Isso confirma que a solicitação de aprovação serializada é válida.
Validar uma solicitação assinada usando uma chave fornecida pelo cliente
No console do Google Cloud, acesse a página Aprovação de acesso.
Localize e selecione a solicitação de Aprovação de acesso aprovada que você quer validar. A página Detalhes da solicitação é aberta.
No console do Google Cloud, na página Detalhes da solicitação, em Assinatura, clique em content_copy Copiar.
Abra o Cloud Shell e salve a assinatura como um novo arquivo chamado
signature.txt
:echo SIGNATURE > ./signature.txt
Substitua
SIGNATURE
pelo conteúdo da Assinatura. .Decodificar a assinatura e salvar o resultado como
decoded_signature
:base64 ./signature.txt -d > ./decoded_signature
No console do Google Cloud, na página Detalhes da solicitação, em Solicitação de aprovação serializada, clique em content_copy Copiar.
Abra o Cloud Shell e salve a solicitação de aprovação serializada como um novo arquivo chamado
serialized_approval_request.txt
:echo SERIALIZED_APPROVAL_REQUEST > ./serialized_approval_request.txt
Substitua
SERIALIZED_APPROVAL_REQUEST
pelo conteúdo do campo Solicitação de aprovação serializada.Decodificar a solicitação de aprovação serializada e salvar o resultado como
decoded_serialized_approval_request
:base64 ./serialized_approval_request.txt -d > ./decoded_serialized_approval_request
Em Chave gerenciada pelo cliente, anote o identificador de recurso do a chave.
Recupere a chave pública identificada na etapa anterior. Salve a chave pública baixada no PEM como
./public_key
.Use
openssl
para verificar a assinatura:openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_request
Se a assinatura for válida, a saída será
Verified OK
. Isso confirma que a solicitação de aprovação serializada é válida.