Мы обнаружили две проблемы, которые вместе вызвали одну и ту же ошибку:
- Несмотря на то, что мы включили шифрование по умолчанию для нашего резервного хранилища S3, у нас все еще была политика, требующая шифрования.AWS применяет эту политику перед шифрованием по умолчанию, поэтому даже команды
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 начать работать, как и ожидалось.