Skip to main content
How to enable StorageGRID in your environment
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Teste e demonstre as opções de criptografia S3 no StorageGRID

Colaboradores

Por Aron Klein

O StorageGRID e a API S3 oferecem várias maneiras diferentes de criptografar seus dados em repouso. Para saber mais, "Reveja os métodos de encriptação StorageGRID" consulte .

Este guia demonstrará os métodos de criptografia da API S3.

Criptografia do lado do servidor (SSE)

O SSE permite que o cliente armazene um objeto e criptografe-o com uma chave única que é gerenciada pelo StorageGRID. Quando o objeto é solicitado, o objeto é descriptografado pela chave armazenada no StorageGRID.

Exemplo SSE

  • COLOQUE um objeto com SSE

    aws s3api put-object --bucket <bucket>  --key <file> --body "<file>" --server-side-encryption AES256 --endpoint-url https://s3.example.com
  • DIRIJA o objeto para verificar a criptografia

    aws s3api head-object --bucket <bucket>  --key <file>   --endpoint-url https://s3.example.com
    {
        "AcceptRanges": "bytes",
        "LastModified": "2022-05-02T19:03:03+00:00",
        "ContentLength": 47,
        "ETag": "\"82e8bfb872e778a4687a26e6c0b36bc1\"",
        "ContentType": "text/plain",
        "ServerSideEncryption": "AES256",
        "Metadata": {}
    }
  • OBTENHA o objeto

    aws s3api get-object --bucket <bucket>  --key <file> <file> --endpoint-url https://s3.example.com

Criptografia do lado do servidor com chaves fornecidas pelo cliente (SSE-C)

SSE permite que o cliente armazene um objeto e criptografe-o com uma chave única que é fornecida pelo cliente com o objeto. Quando o objeto é solicitado, a mesma chave deve ser fornecida para descriptografar e retornar o objeto.

Exemplo SSE-C.

  • Para fins de teste ou demonstração, você pode criar uma chave de criptografia

    • Crie uma chave de criptografia

      openssl enc -aes-128-cbc -pass pass:secret -P`
      salt=E9DBB6603C7B3D2A
      key=23832BAC16516152E560F933F261BF03
      iv =71E87C0F6EC3C45921C2754BA131A315
  • Coloque um objeto com a chave gerada

    aws s3api put-object --bucket <bucket> --key <file> --body "file" --sse-customer-algorithm AES256 --sse-customer-key 23832BAC16516152E560F933F261BF03 --endpoint-url https://s3.example.com
  • Cabeça o objeto

    aws s3api head-object --bucket <bucket> --key <file> --sse-customer-algorithm AES256 --sse-customer-key 23832BAC16516152E560F933F261BF03 --endpoint-url https://s3.example.com
                {
                    "AcceptRanges": "bytes",
                    "LastModified": "2022-05-02T19:20:02+00:00",
                    "ContentLength": 47,
                    "ETag": "\"f92ef20ab87e0e13951d9bee862e9f9a\"",
                    "ContentType": "binary/octet-stream",
                    "Metadata": {},
                    "SSECustomerAlgorithm": "AES256",
                    "SSECustomerKeyMD5": "rjGuMdjLpPV1eRuotNaPMQ=="
                }
Observação Se você não fornecer a chave de criptografia, você receberá um erro "ocorreu um erro (404) ao chamar a operação HeadObject: Not found"
  • Obtenha o objeto

    aws s3api get-object --bucket <bucket> --key <file> <file> --sse-customer-algorithm AES256 --sse-customer-key 23832BAC16516152E560F933F261BF03 --endpoint-url https://s3.example.com
Observação Se você não fornecer a chave de criptografia, você receberá um erro "ocorreu um erro (InvalidRequest) ao chamar a operação GetObject: O objeto foi armazenado usando uma forma de criptografia do lado do servidor. Os parâmetros corretos devem ser fornecidos para recuperar o objeto."

Criptografia do lado do servidor do bucket (SSE-S3)

O SSE-S3 permite que o cliente defina um comportamento de criptografia padrão para todos os objetos armazenados em um bucket. Os objetos são criptografados com uma chave exclusiva que é gerenciada pelo StorageGRID. Quando o objeto é solicitado, o objeto é descriptografado pela chave armazenada no StorageGRID.

Exemplo SSE-S3 do bucket

  • Crie um novo intervalo e defina uma política de criptografia padrão

    • Crie um novo balde

      aws s3api create-bucket --bucket <bucket> --region us-east-1 --endpoint-url https://s3.example.com
    • Coloque criptografia de bucket

      aws s3api put-bucket-encryption --bucket <bucket> --server-side-encryption-configuration '{"Rules": [{"ApplyServerSideEncryptionByDefault": {"SSEAlgorithm": "AES256"}}]}' --endpoint-url https://s3.example.com
  • Coloque um objeto no balde

    aws s3api put-object --bucket <bucket> --key <file> --body "file" --endpoint-url https://s3.example.com
  • Cabeça o objeto

    aws s3api head-object --bucket <bucket> --key <file> --endpoint-url https://s3.example.com
    {
    "AcceptRanges": "bytes",
    "LastModified": "2022-05-02T20:16:23+00:00",
    "ContentLength": 47,
    "ETag": "\"82e8bfb872e778a4687a26e6c0b36bc1\"",
    "ContentType": "binary/octet-stream",
    "ServerSideEncryption": "AES256",
    "Metadata": {}
    }
  • OBTENHA o objeto

    aws s3api get-object --bucket <bucket>  --key <file> <file> --endpoint-url https://s3.example.com