Skip to main content
How to enable StorageGRID in your environment
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Testare e dimostrare le opzioni di crittografia S3 su StorageGRID

Collaboratori

Di Aron Klein

StorageGRID e l'API S3 offrono diversi modi per crittografare i dati inattivi. Per ulteriori informazioni, vedere "Esaminare i metodi di crittografia StorageGRID".

Questa guida illustra i metodi di crittografia dell'API S3.

Server Side Encryption (SSE)

SSE consente al client di memorizzare un oggetto e di crittografarlo con una chiave univoca gestita da StorageGRID. Quando l'oggetto viene richiesto, l'oggetto viene decrittografato dalla chiave memorizzata in StorageGRID.

Esempio SSE

  • METTI un oggetto con SSE

    aws s3api put-object --bucket <bucket>  --key <file> --body "<file>" --server-side-encryption AES256 --endpoint-url https://s3.example.com
  • TESTA l'oggetto per verificare la crittografia

    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": {}
    }
  • OTTIENI l'oggetto

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

Crittografia lato server con chiavi fornite dal cliente (SSE-C)

SSE consente al client di memorizzare un oggetto e di crittografarlo con una chiave univoca fornita dal client con l'oggetto. Quando l'oggetto viene richiesto, è necessario fornire la stessa chiave per decrittare e restituire l'oggetto.

Esempio SSE-C.

  • A scopo di test o dimostrazione, è possibile creare una chiave di crittografia

    • Creare una chiave di crittografia

      openssl enc -aes-128-cbc -pass pass:secret -P`
      salt=E9DBB6603C7B3D2A
      key=23832BAC16516152E560F933F261BF03
      iv =71E87C0F6EC3C45921C2754BA131A315
  • Inserire un oggetto con la chiave generata

    aws s3api put-object --bucket <bucket> --key <file> --body "file" --sse-customer-algorithm AES256 --sse-customer-key 23832BAC16516152E560F933F261BF03 --endpoint-url https://s3.example.com
  • Testa l'oggetto

    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=="
                }
Nota Se non si fornisce la chiave di crittografia, viene visualizzato il messaggio di errore "si è verificato un errore (404) durante la chiamata dell'operazione HeadObject: Non trovata"
  • Ottieni l'oggetto

    aws s3api get-object --bucket <bucket> --key <file> <file> --sse-customer-algorithm AES256 --sse-customer-key 23832BAC16516152E560F933F261BF03 --endpoint-url https://s3.example.com
Nota Se non si fornisce la chiave di crittografia, viene visualizzato l'errore "si è verificato un errore (InvalidRequest) durante la chiamata dell'operazione GetObject: L'oggetto è stato memorizzato utilizzando un modulo di Server Side Encryption. Per recuperare l'oggetto, è necessario fornire i parametri corretti."

Crittografia lato server bucket (SSE-S3)

SSE-S3 consente al client di definire un comportamento di crittografia predefinito per tutti gli oggetti memorizzati in un bucket. Gli oggetti vengono crittografati con una chiave univoca gestita da StorageGRID. Quando l'oggetto viene richiesto, l'oggetto viene decrittografato dalla chiave memorizzata in StorageGRID.

Esempio di bucket SSE-S3

  • Creare un nuovo bucket e impostare una policy di crittografia predefinita

    • Creare un nuovo bucket

      aws s3api create-bucket --bucket <bucket> --region us-east-1 --endpoint-url https://s3.example.com
    • Metti la crittografia bucket

      aws s3api put-bucket-encryption --bucket <bucket> --server-side-encryption-configuration '{"Rules": [{"ApplyServerSideEncryptionByDefault": {"SSEAlgorithm": "AES256"}}]}' --endpoint-url https://s3.example.com
  • Metti un oggetto nel bucket

    aws s3api put-object --bucket <bucket> --key <file> --body "file" --endpoint-url https://s3.example.com
  • Testa l'oggetto

    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": {}
    }
  • OTTIENI l'oggetto

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