我已经根据user guide在Amazon的新的适用于SFTP的AWS Transfer for SFTP管理的SFTP服务下设置了服务器,但是我无法使其与KMS加密密钥一起使用。我的SFTP客户端可以通过身份验证,但是当我尝试put
进行文件传输时,该文件将上载,但无法保存,并出现Couldn't close file: Failure
错误。
我在“关键用户”列表中具有与我的SFTP用户关联的角色,但是我怀疑“降级”策略中的某些内容(用于防止SFTP用户看到关联的S3存储桶中的其他文件夹)密钥被使用,因为我尝试删除降级策略,然后一切正常(但是这会使整个存储桶暴露给每个用户,这显然是不可接受的)。
有什么想法需要添加到降级策略(或密钥策略)中,以允许KMS密钥以这种方式使用?
答案 0 :(得分:2)
我们发现了两个导致相同错误的问题:
aws s3 cp
标志的--sse:aws:kms
命令也会失败。删除该策略后,aws s3 cp
使用了默认的加密策略。kms:XXX
权限,该策略与我们创建的SFTP用户的角色有关。总之,我们的政策如下:{
"Version": "2012-10-17",
"Statement": [
{
"Action": "s3:ListBucket",
"Resource": "${bucket_arn}",
"Effect": "Allow"
},
{
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": "${bucket_arn}/*",
"Effect": "Allow"
},
{
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt",
"kms:GenerateDataKey",
"kms:DescribeKey"
],
"Resource": "${kms_arn}",
"Effect": "Allow"
}
]
}
将其应用到用户后,SFTP便开始按预期运行。