In case you want to use server side encryption with your own keys
Let’s create a bin key:
mirettam@doraemon:~$ cat /dev/random | head -c 32 > key.bin
Let’s upload an object:
First check the md5sum of the object:
mirettam@doraemon:~$ md5sum awscliv2.zip e6b46dd7cac2629a544ab343df00324f awscliv2.zip
Then PUT the object:
mirettam@doraemon:~$ aws s3api put-object --key awscliv2.zip --body awscliv2.zip --sse-customer-algorithm AES256 --sse-customer-key fileb://key.bin --bucket storagegrid-training
{
"ETag": "\"0edaf675a5c6d28c3c29d8b7f627a7ae\"",
"SSECustomerAlgorithm": "AES256",
"SSECustomerKeyMD5": "eUhaDMfLGFJZ21BC4qX2qg=="
}
Let’s try to retrieve the object using the keys.
mirettam@doraemon:~$ aws s3api get-object --key awscliv2.zip --sse-customer-algorithm AES256 --sse-customer-key fileb://key.bin --bucket storagegrid-training awscli2.zip
{
"AcceptRanges": "bytes",
"LastModified": "2020-08-18T11:04:02+00:00",
"ContentLength": 33159785,
"ETag": "\"0edaf675a5c6d28c3c29d8b7f627a7ae\"",
"ContentType": "binary/octet-stream",
"Metadata": {},
"SSECustomerAlgorithm": "AES256",
"SSECustomerKeyMD5": "eUhaDMfLGFJZ21BC4qX2qg=="
}
Check the md5sum of the retrieved object.
mirettam@doraemon:~$ md5sum awscli2.zip e6b46dd7cac2629a544ab343df00324f awscli2.zip
Let’s try to retrieve the object without using any key, it should fail:
mirettam@doraemon:~$ aws s3api get-object --key awscliv2.zip --bucket storagegrid-training awscli3.zip An error occurred (InvalidRequest) when calling the GetObject operation: The object was stored using a form of Server Side Encryption. The correct parameters must be provided to retrieve the object.
