我正在尝试将KMS加密添加到S3中的Gitlab备份中。我知道可以为此使用S3托管密钥,但是可以选择使用KMS吗?
gitlab_rails['backup_upload_connection'] = {
'provider' => 'AWS',
'region' => 'eu-west-1',
'aws_access_key_id' => 'AKIAKIAKI',
'aws_secret_access_key' => 'secret123'
# If using an IAM Profile, don't configure aws_access_key_id &
aws_secret_access_key
# 'use_iam_profile' => true
}
gitlab_rails['backup_upload_remote_directory'] = 'my.s3.bucket'
如果我添加gitlab_rails['backup_encryption'] = 'AES256'
,它将使用S3托管密钥。我一直未能在官方文档中找到有关此信息。
如果不可能的话,有其他解决方案,但是如果可以在这里处理,将会很方便。
答案 0 :(得分:1)
CAVEAT::已通过Omnibus GitLab 12.3和Amazon Linux 2进行了验证。否则,未经修改可能无法正常工作。
从GitLab 12.3开始,不支持AWS KMS进行备份上传。
对于AWS KMS,您需要使用以下脚本(以root或sudo身份运行)运行while
后上传备份:
gitlab-backup create
如果您愿意,也可以直接使用KMS密钥ID。
确保您的实例IAM角色具有:
如果希望实例能够从S3运行自动还原,请包括以下内容: -从存储备份的存储桶路径中 s3:GetObject - kms:解密到用于加密备份的KMS密钥的ARN
如果要改用SSE-C,则可以。
下面是从运行在EC2上的GitLab将SSE-C备份到S3的示例:
aws s3 cp $(find /var/opt/gitlab/backups -type f -name '*_gitlab_backup.tar' |
sort -r | head -n1) "s3://{YOUR_BACKUP_BUCKET_NAME}/" \
--sse aws:kms --sse-kms-key-id 'alias/your-cmk-alias'
答案 1 :(得分:0)
ssekms_key_id可用于在上传对象时指定KMS密钥。 官方document在这里,可能会帮助您解决任何其他要求。