У меня есть пользователь, я назову его Альфред, с прикрепленной политикой IAM, как показано ниже.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::my-bucket-name/*",
"arn:aws:s3:::my-bucket-name/",
"arn:aws:s3:::my-bucket-name"
]
}
]
}
В симуляторе IAM я получаю «Разрешено» для GetObject, используя эту политику и этот ARN:arn:aws:s3:::my-bucket-name/my-object.xml
В CLI я получаю AccessDenied для следующей команды:aws s3 cp s3://my-bucket-name/my-object.xml temp/my-object.xml
Произошла ошибка клиента (AccessDenied) при вызове операции GetObject: Доступ запрещен
Я посмотрел на все, что смог придумать, но не могу объяснить это несоответствие. Что я упускаю?
Что я пробовал
«creds» здесь означает «ключи доступа AWS IAM»
- Симулятор IAM — это работает
- Другой набор кредитов IAM — это работает
- Использование
aws s3 ls s3://my-bucket-name/
-- это работает с учетными данными IAM Альфреда и с моими учетными данными - Сравнил политики с аналогично настроенным ведром в другом аккаунте AWS. Политики идентичны, насколько я могу судить.
решение1
Оказалось, что это разрешения на ключ(и) KMS шифруют этот бакет. Ключи принадлежат учетной записи root, и поэтому я не смог найти их с помощью обычного доступа IAM, а также не смог увидеть политику для них.