Использование Cognito для аутентификации веб — приложения и доступа к S3 БЕЗ встраивания секретного ключа и ключа доступа

#amazon-web-services #amazon-s3 #amazon-cognito

Вопрос:

У меня возникли трудности с предоставлением доступа к S3 пользователям, которые успешно прошли аутентификацию с помощью Cognito. Я следовал рекомендациям, перечисленным в службе поддержки AWS, и создал то, что я считаю правильной политикой, но я все еще продолжаю получать:

Произошла ошибка при загрузке вашего файла: Ошибка учетных данных: В конфигурации отсутствуют учетные данные, если вы используете файл AWS_CONFIG_FILE, установите AWS_SDK_LOAD_CONFIG=1

В AWS у меня определена следующая политика JSON и прикреплена соответствующая корзина S3:

 {
    "Version": "2012-10-17",
    "Id": "PolicyBlahBlah",
    "Statement": [
        {
            "Sid": "THESID",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::99000099:role/service-roleCognitoToS3Authentication"
            },
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::THE_BUCKET_IN_QUESTION/*"
        }
    ]
}
 

Политика JSON, которая определяет роль и прикрепляется к ней

служба-распознавание ролей 3аутентификация

находится ниже:

 {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::THE_BUCKET_IN_QUESTION",
            "Condition": {
                "StringLike": {
                    "s3:prefix": "cognito/the-cognito-pool-ID/${cognito-identity.amazonaws.com:sub}"
                }
            }
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::THE_BUCKET_IN_QUESTION/specific_folder/cognito/the-cognito-pool-ID/${cognito-identity.amazonaws.com:sub}",
                "arn:aws:s3:::THE_BUCKET_IN_QUESTION/specific_folder/cognito/the-cognito-pool-ID/${cognito-identity.amazonaws.com:sub}/*"
            ]
        }
    ]
}
 

Теперь я создал пул удостоверений с заданным идентификатором пула пользователей. Кроме того, были созданы роли, прошедшие проверку подлинности и не прошедшие проверку подлинности Cognito. Я не хочу иметь пользователей, не прошедших проверку подлинности. Т. Е. публичного доступа «только для чтения» нет.

Нужно ли что-нибудь сделать с ролью пользователей, прошедших проверку подлинности, созданной в настройке пула удостоверений?