Если вы хотите создать централизованное хранилище для журналов, поступающих от многих учетных записей AWS, и поделиться этими журналами соответственно со своими владельцами, то в официальной статье AWS для знаний объясняется, как это сделать очень хорошо с пользователями на базе IAM.
Однако я не понимаю, как сделать то же самое, если вы используете федеративные удостоверения (SAML).
Предположим, у вас есть учетные записи 111111111111 и 222222222222, ведущие запись в корзину на счете 999999999999. Для простоты, давайте будем ссылаться на них как A1, A2 и A9.
Кроме того, федеративные пользователи могут получить доступ к учетным записям А1 и А2, которым разрешено взять на себя роль ADMIN, а CloudTrails регистрируется в корзине ВЕДРО в A9.
Итак, у меня пока есть следующая политика корзины. Для простоты у блоков операторов есть Sids (идентификаторы операторов) 1,2,3 и 4.
Проблема:
- ADMIN из A1 может исследовать структуру папок в папке корзины * AWSLogs / 111111111111 / **, но попытка загрузить объекты приводит к ошибке «Отказано в доступе».
Как получается? Чего не хватает?
{
"Version": "2012-10-17",
"Statement": [
{
"Sid":"1",
"Effect": "Allow",
"Principal": {
"Service": "cloudtrail.amazonaws.com"
},
"Action": "s3:GetBucketAcl",
"Resource": "arn:aws:s3:::BUCKET"
},
{
"Sid":"2",
"Effect": "Allow",
"Principal": {
"Service": "cloudtrail.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": [
"arn:aws:s3:::BUCKET/AWSLogs/111111111111/*",
"arn:aws:s3:::BUCKET/AWSLogs/222222222222/*"
],
"Condition": {
"StringEquals": {
"s3:x-amz-acl": "bucket-owner-full-control"
}
}
},
{
"Sid":"3",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111111111111:role/ADMIN"
},
"Action": [
"s3:List*"
],
"Resource": "arn:aws:s3:::BUCKET",
"Condition": {
"StringLike": {
"s3:prefix": "AWSLogs/111111111111/*"
}
}
},
{
"Sid":"4",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111111111111:role/ADMIN"
},
"Action": [
"s3:List*",
"s3:Get*"
],
"Resource": "arn:aws:s3:::BUCKET/AWSLogs/111111111111/*"
}
]
}