使用 KMS 加密密钥时无法使用 AWS Transfer for SFTP 读取或写入任何文件
Unable to read or write any files using AWS Transfer for SFTP when using KMS encryption key
我已经根据 user guide 在 Amazon 新的 AWS Transfer for SFTP 托管 SFTP 服务下设置了一个服务器,但我无法让它与 KMS 加密密钥一起使用。我的 SFTP 客户端可以很好地进行身份验证,但是当我尝试 put
文件时,文件上传但随后无法保存并出现 Couldn't close file: Failure
错误。
我在关键用户列表中拥有与我的 SFTP 用户关联的角色,但我怀疑 "step down" 策略中有某些内容(用于防止 SFTP 用户查看关联的 S3 存储桶中的其他文件夹) 阻止使用密钥,因为我尝试删除降压策略,然后一切正常(但随后将整个存储桶暴露给每个用户,这显然是不可接受的)。
有什么想法需要添加到降压策略(或密钥策略)以允许以这种方式使用 KMS 密钥吗?
我们发现两个问题共同导致了同样的错误:
- 虽然我们在支持 S3 存储桶上启用了默认加密,但我们仍然制定了要求加密的政策。 AWS 在 之前 默认加密应用该策略,因此即使没有
--sse:aws:kms
标志的 aws s3 cp
命令也会失败。删除该策略使 aws s3 cp
使用默认加密策略。
- 我们需要向附加到我们创建的 SFTP 用户的角色附加的策略添加一些
kms:XXX
权限。总之,我们的政策现在看起来像:
{
"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 开始按预期工作。
我已经根据 user guide 在 Amazon 新的 AWS Transfer for SFTP 托管 SFTP 服务下设置了一个服务器,但我无法让它与 KMS 加密密钥一起使用。我的 SFTP 客户端可以很好地进行身份验证,但是当我尝试 put
文件时,文件上传但随后无法保存并出现 Couldn't close file: Failure
错误。
我在关键用户列表中拥有与我的 SFTP 用户关联的角色,但我怀疑 "step down" 策略中有某些内容(用于防止 SFTP 用户查看关联的 S3 存储桶中的其他文件夹) 阻止使用密钥,因为我尝试删除降压策略,然后一切正常(但随后将整个存储桶暴露给每个用户,这显然是不可接受的)。
有什么想法需要添加到降压策略(或密钥策略)以允许以这种方式使用 KMS 密钥吗?
我们发现两个问题共同导致了同样的错误:
- 虽然我们在支持 S3 存储桶上启用了默认加密,但我们仍然制定了要求加密的政策。 AWS 在 之前 默认加密应用该策略,因此即使没有
--sse:aws:kms
标志的aws s3 cp
命令也会失败。删除该策略使aws s3 cp
使用默认加密策略。 - 我们需要向附加到我们创建的 SFTP 用户的角色附加的策略添加一些
kms:XXX
权限。总之,我们的政策现在看起来像:
{
"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 开始按预期工作。