Невозможно прочитать или записать какие-либо файлы с помощью AWS Transfer для SFTP при использовании ключа шифрования KMS - PullRequest
0 голосов
/ 05 декабря 2018

Я настроил сервер под новой службой Amazon AWS Transfer для SFTP, управляемой SFTP, согласно руководству пользователя , но мне не удалось заставить его работать с ключом шифрования KMS.Мой SFTP-клиент может нормально проходить аутентификацию, но когда я пытаюсь put файл, файл загружается, но затем не удается сохранить с ошибкой Couldn't close file: Failure.

У меня есть роль, связанная с моим пользователем SFTP всписок ключевых пользователей, но я подозреваю, что что-то в политике «step down» (которая используется, чтобы пользователи SFTP не могли видеть другие папки в связанной корзине S3) не позволяет использовать ключ, потому что я пытался удалить step-downполитики, а затем все работало нормально (но тогда весь пользователь получает доступ к целому сегменту, что явно неприемлемо).

Любые идеи, которые необходимо добавить в политику понижения (или ключевую политику), чтобыразрешить использовать ключ KMS таким образом?

1 Ответ

0 голосов
/ 17 января 2019

Мы обнаружили две проблемы, которые вместе вызвали одну и ту же ошибку:

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

...