У меня есть две разные учетные записи AWS, DEV
и PROD
, и я хотел бы создать пользователя в DEV
для управления корзинами S3 в обеих.Я создал пользователя Bob, к которому прикреплена следующая политика:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:PutObjectAcl",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::some-dev-bucket/*",
"arn:aws:s3:::another-dev-bucket/*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets",
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": "*"
}
]
}
Это на самом деле работает, Боб может перечислить все корзины и получить доступ к некоторым из них.Чтобы предоставить Бобу доступ к корзинам S3 в учетной записи PROD
, я создал там роль PROD-S3-Access
с соответствующими разрешениями и доверительными отношениями, которые позволяют пользователям DEV
принять это.Возвращаясь к DEV
, я создаю новую политику, которая позволяет Бобу взять на себя роль:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::prod-account-id:role/PROD-S3-Access"
}
]
}
Это также отлично работает, теперь Боб может получить доступ к PROD
s S3.Однако при выполнении aws s3 ls
в учетной записи DEV
Боб получает это сообщение An error occurred (AccessDenied) when calling the ListBuckets operation: Access Denied
.Смущает, что если я откажусь от политики, которая позволяет Бобу принять PROD-S3-Access
, он снова может прочитать S3-сегменты DEV
.Любая подсказка?
РЕДАКТИРОВАТЬ:
На самом деле проблема была вызвана мною не замеченным состоянием, которое требовало от пользователя включения MFA.