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": {}
}
Другие вопросы по тегам