AWS считает, что доступ к роли запрещен при использовании SDK
Я использую go sdk, чтобы создать новую роль и принять ее. Оба выполняются одним и тем же пользователем IAM. Ролевые доверительные отношения следующие:
{
"Statement": [{
"Effect": "Allow",
"Principal": { "AWS": "<an admin user>" },
"Action": [ "sts:AssumeRole" ]
}]
}
Позже, пытаясь добавить объект в корзину, я могу создать токен сеанса, но операции PutObject завершаются неудачно с AccessDenied. Политика корзины:
{
"Effect": "Allow",
"Action":"s3:*",
"Resource": [
"arn:aws:s3:::<name of the bucket>/*"
],
"Condition": {}
}
1 ответ
Решение
Если роль, которую вы предполагаете, не предоставляет доступ к корзине S3 через политики ролей, вам необходимо добавить роль в качестве принципала в политику корзины.
Здесь есть удобный инструмент; https://awspolicygen.s3.amazonaws.com/policygen.html, который помогает создавать политики корзины. Но в итоге должно получиться так:
{
"Effect": "Allow",
"Action":"s3:*",
"Principal": {
"AWS": ["arn:aws:iam::<accountid>:role/<name of assumed role>"]
},
"Resource": [
"arn:aws:s3:::<name of the bucket>/*"
],
"Condition": {}
}