#amazon-web-services #amazon-s3 #amazon-iam #amazon-vpc
#amazon-веб-сервисы #amazon-s3 #amazon-iam #amazon-vpc
Вопрос:
У меня много учетных записей AWS. Я включил журналы потока VPC для всех из них, и я хочу отправлять эти журналы в центральную корзину S3 в своих учетных записях архива журналов.
Политика IAM, которая работает, заключается в следующем:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AWSLogDeliveryWrite",
"Effect": "Allow",
"Principal": {"Service": "delivery.logs.amazonaws.com"},
"Action": "s3:PutObject",],
"Resource": "arn:aws:s3:::central_log_archive_bucket",
"Condition": {
"StringEquals": {
"aws:SourceAccount": <account_id-1>,
"aws:SourceAccount": <account_id-2>,
"aws:SourceAccount": <account_id-3>,
...
"aws:SourceAccount": <account_id-N>
},
"ArnLike": {
"aws:SourceArn": "arn:aws:logs:*:<account_id-1>:*",
"aws:SourceArn": "arn:aws:logs:*:<account_id-2>:*",
"aws:SourceArn": "arn:aws:logs:*:<account_id-3>:*",
...
"aws:SourceArn": "arn:aws:logs:*:<account_id-N>:*",
}
}
}
]
}
Я хочу упростить это. Вместо добавления всех идентификаторов учетных записей, как показано выше, я хочу разрешить ЛЮБОЙ службе VPC, принадлежащей учетной записи AWS в моей организации, публиковать журналы в S3. Короче говоря, я хочу сделать что-то вроде:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AWSLogDeliveryWrite",
"Effect": "Allow",
"Principal": {"Service": "delivery.logs.amazonaws.com"},
"Action": "s3:PutObject",],
"Resource": "arn:aws:s3:::central_log_archive_bucket",
"Condition": {
"StringEquals": {
"aws:PrincipalOrgID": "ID"
}
}
}
]
}
Но я вижу следующее сообщение об ошибке:
Unsupported Condition Key for Service Principal
Есть идеи, как заставить это работать?
Ответ №1:
Как упоминалось здесь https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html,
Вы не можете использовать некоторые ключи условий с определенными участниками службы. Например, вы не можете использовать ключ aws:PrincipalOrgID
условия с участником службы cloudfront.amazonaws.com.
или другим сервисом, таким как журналы. Вы должны удалить ключи условий, которые не применяются к участнику службы в основном элементе.
Вы можете автоматизировать это с помощью лямбда-выражения при создании каждой учетной записи, например, для изменения политики корзины…