Usando criptografia do lado do servidor com filas do Amazon SQS - Amazon Simple Queue Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando criptografia do lado do servidor com filas do Amazon SQS

Você pode usar o AWS SDK for Java para adicionar criptografia do lado do servidor (SSE) a uma fila do Amazon SQS. Cada fila usa uma chave KMS AWS Key Management Service (AWS KMS) para gerar as chaves de criptografia de dados. Este exemplo usa a chave KMS AWS gerenciada para o Amazon SQS. Para obter mais informações sobre como usar a SSE e a função da chave do KMS, consulte Criptografia em repouso na Amazon SQS.

Adicionar SSE a uma fila existente

Para habilitar a criptografia no lado do servidor para uma fila existente, use o método SetQueueAttributes para definir o atributo KmsMasterKeyId.

O exemplo de código a seguir define a AWS KMS key como a chave KMS AWS gerenciada para o Amazon SQS. O exemplo também define o período de reutilização de AWS KMS key como 140 segundos.

Antes de executar o código de exemplo, verifique se você definiu suas AWS credenciais. Para obter mais informações, consulte Configurar AWS credenciais e região para desenvolvimento no Guia do AWS SDK for Java 2.x desenvolvedor.

// Create an SqsClient for the specified Region. SqsClient sqsClient = SqsClient.builder().region(Region.US_WEST_1).build(); // Get the URL of your queue. String myQueueName = "my queue"; GetQueueUrlResponse getQueueUrlResponse = sqsClient.getQueueUrl(GetQueueUrlRequest.builder().queueName(myQueueName).build()); String queueUrl = getQueueUrlResponse.queueUrl(); // Create a hashmap for the attributes. Add the key alias and reuse period to the hashmap. HashMap<QueueAttributeName, String> attributes = new HashMap<QueueAttributeName, String>(); final String kmsMasterKeyAlias = "alias/aws/sqs"; // the alias of the AWS managed KMS key for Amazon SQS. attributes.put(QueueAttributeName.KMS_MASTER_KEY_ID, kmsMasterKeyAlias); attributes.put(QueueAttributeName.KMS_DATA_KEY_REUSE_PERIOD_SECONDS, "140"); // Create the SetQueueAttributesRequest. SetQueueAttributesRequest set_attrs_request = SetQueueAttributesRequest.builder() .queueUrl(queueUrl) .attributes(attributes) .build(); sqsClient.setQueueAttributes(set_attrs_request);

Desabilitar a SSE para uma fila

Para desabilitar a criptografia no lado do servidor para uma fila existente, defina o atributo KmsMasterKeyId como uma string vazia usando o método SetQueueAttributes.

Importante

null não é um valor válido para KmsMasterKeyId.

Criar uma fila com SSE

Para habilitar a SSE ao criar a fila, adicione o atributo KmsMasterKeyId ao método da API CreateQueue.

O exemplo a seguir cria uma fila nova com a SSE habilitada. A fila usa a chave do KMS gerenciada pela AWS para o Amazon SQS. O exemplo também define o período de reutilização de AWS KMS key como 160 segundos.

Antes de executar o código de exemplo, verifique se você definiu suas AWS credenciais. Para obter mais informações, consulte Configurar AWS credenciais e região para desenvolvimento no Guia do AWS SDK for Java 2.x desenvolvedor.

// Create an SqsClient for the specified Region. SqsClient sqsClient = SqsClient.builder().region(Region.US_WEST_1).build(); // Create a hashmap for the attributes. Add the key alias and reuse period to the hashmap. HashMap<QueueAttributeName, String> attributes = new HashMap<QueueAttributeName, String>(); final String kmsMasterKeyAlias = "alias/aws/sqs"; // the alias of the AWS managed KMS key for Amazon SQS. attributes.put(QueueAttributeName.KMS_MASTER_KEY_ID, kmsMasterKeyAlias); attributes.put(QueueAttributeName.KMS_DATA_KEY_REUSE_PERIOD_SECONDS, "140"); // Add the attributes to the CreateQueueRequest. CreateQueueRequest createQueueRequest = CreateQueueRequest.builder() .queueName(queueName) .attributes(attributes) .build(); sqsClient.createQueue(createQueueRequest);

Recuperar atributos de SSE

Para obter informações sobre como recuperar atributos da fila, consulte Exemplos na Referência da API do Amazon Simple Queue Service.

Para recuperar o ID da chave do KMS ou o período de reutilização da chave de dados de uma fila específica, execute o método GetQueueAttributes e recupere os valores KmsMasterKeyId e KmsDataKeyReusePeriodSeconds.