Openssl 解密Amazon红移CSV转储
我想在本地解密Amazon红移表的CSV转储。 我正在使用Openssl 解密Amazon红移CSV转储,openssl,amazon-redshift,Openssl,Amazon Redshift,我想在本地解密Amazon红移表的CSV转储。 我正在使用unload命令和客户端加密,因为数据包含敏感信息 我使用的命令如下所示: unload ('select * from testtable.test') to 's3://unload' credentials 'aws_access_key_id=<AWS_KEY_ID>;aws_secret_access_key=<AWS_SECRET_KEY_ID>;master_symmetric_key=<MAS
unload
命令和客户端加密,因为数据包含敏感信息
我使用的命令如下所示:
unload ('select * from testtable.test')
to 's3://unload'
credentials 'aws_access_key_id=<AWS_KEY_ID>;aws_secret_access_key=<AWS_SECRET_KEY_ID>;master_symmetric_key=<MASTER_KEY>'
delimiter as ','
addquotes
escape
encrypted
ALLOWOVERWRITE
openssl enc -aes-256-cbc -d -nosalt -base64 -in 0000_part_00 -out temps.csv
我使用键
作为“主对称”键
我在本地复制s3数据,并尝试按如下方式解密:
unload ('select * from testtable.test')
to 's3://unload'
credentials 'aws_access_key_id=<AWS_KEY_ID>;aws_secret_access_key=<AWS_SECRET_KEY_ID>;master_symmetric_key=<MASTER_KEY>'
delimiter as ','
addquotes
escape
encrypted
ALLOWOVERWRITE
openssl enc -aes-256-cbc -d -nosalt -base64 -in 0000_part_00 -out temps.csv
但是你可以得到:
bad decrypt 6038:error:0606506D:digital envelope routines:EVP_DecryptFinal_ex: wrong
final block length:/SourceCache/OpenSSL098/OpenSSL098-52.20.2/src/crypto/evp/evp_enc.c:323
如何解密Amazon Redshift CSV转储?密钥存储为元数据,可在
x-amz-meta-x-amz-Key
中使用,IV存储为元数据,可在x-amz-meta-x-amz-IV
中使用。从:
。。。UNLOAD然后将加密的数据文件存储在AmazonS3中,并将加密的信封密钥和IV存储为每个文件的对象元数据。加密的信封密钥存储为对象元数据x-amz-meta-x-amz-key,IV存储为对象元数据x-amz-meta-x-amz-IV
当您获得S3对象时,您还将获得这些元数据字段。下面是一些S3 GET对象示例:因此,红移使用信封加密的方式与AWS SDK使用信封加密在S3上存储文件的方式相同。因此,为了解密文件,您应该:
redshift-manifest-tools --action retrieve-files --manifest-s3url 's3://<your-bucket>/path/to.manifest' --dest /tmp/ --symmetric-key '<base64-master-key>'
redshift清单工具--操作检索文件--manifest-s3url's3:///path/to.manifest'--dest/tmp/--对称密钥“”
将下载文件,对其进行解密,并将明文版本存储在/tmp/中