Запретить доступ к AWS S3 файлам для всех, кроме пользователя приложения - PullRequest
0 голосов
/ 19 февраля 2020

Я создаю веб-приложение, в которое пользователи входят через Amazon Cognito. Как только пользователь вошел в систему, он может начать загрузку и загрузку файлов из AWS S3, используя предварительно подписанный URL-адрес. Предполагается, что файлы являются секретными, и только пользователь, загрузивший их, сможет их прочитать. Возможно ли добиться этого, чтобы даже пользователь AWS с учетной записью *1003* не мог читать файлы?

Ответы [ 2 ]

2 голосов
/ 19 февраля 2020

Используя AWS SDK , можно использовать готовое шифрование на стороне клиента.

 EncryptionMaterials encryptionMaterials = new EncryptionMaterials(symKey);

 AmazonS3 s3EncryptionClient = AmazonS3EncryptionClientBuilder.standard()
       .withCredentials(new ProfileCredentialsProvider())
       .withEncryptionMaterials(new StaticEncryptionMaterialsProvider(encryptionMaterials))
        .withRegion(clientRegion)
        .build();

Обратите внимание:

  • если клиенту потребуется предоставить дополнительный ключ для шифрования содержимого. Вопрос в том, как / где клиент будет управлять ключом содержимого. (PBKDF? KMS из другой учетной записи?)
  • если ключ шифрования утерян, содержимое невозможно восстановить

Я имею в виду, если ключ шифрования сохранен на стороне пользователя и он удаляет приложение и все его данные, как он может расшифровать данные после повторной установки приложения?

Я предлагаю вам создать ключ шифрования на основе пароля где пользователь может предоставить пароль шифрования (отличный от пароля аутентификации пользователя, который может измениться).

Может быть, я могу использовать пароль Cognito для этого, но что, если пользователь захочет изменить пароль

У вас (не должно быть) доступа к паролю пользователя.

1 голос
/ 19 февраля 2020

Единственный способ заставить этот метод работать, состоит в том, что пользователь должен будет зашифровать файл на своей стороне, а затем загрузить зашифрованный файл, когда они загружают файл позже, он дешифруется, чтобы они могли читать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...