Я пытаюсь создать шаблон с облачным формированием, который устанавливает балансировщик нагрузки, который записывает журналы в ведро S3. Вместо того чтобы дать полный доступ к всем (например, *), я хочу, чтобы ограничить доступ к PutObject
только балансировки нагрузки счета или услуги:AWS Cloud Formation Упругая балансировка нагрузки ID учетной записи
{
"Resources": {
"LoggingBucketPolicy": {
"Type": "AWS::S3::BucketPolicy",
"Properties": {
"Bucket": {
"Ref": "LoggingBucket"
},
"PolicyDocument": {
"Action": [
"s3:PutObject"
],
"Effect": "Allow",
"Resource": {
"Fn::Join": [
"",
[
"arn:aws:s3:::",
{
"Ref": "LoggingBucket"
},
"/*"
]
]
},
"Principal": {
"Ref": "ElasticLoadBalancingAccountID" //How do I set this dynamically?
}
}
}
}
}
}
documentation предоставляет счета идентификаторы экземпляров Elb в различных регионах. Однако шаблон, который я создаю, имеет параметр зоны доступности, в котором пользователь может выбрать зону доступности для развертывания стека. Поэтому мне хотелось бы, чтобы в моей политике ведра была какая-то переменная ref
, которая получает идентификатор учетной записи балансировки нагрузки на основе зоны доступности.
Я также рассмотрел примеры в official documentation, но один пример, который использует Ref
, на самом деле не определяет переменную.
Как это достичь?
Редактировать: Я имел в виду зоны доступности вместо региона. Входной параметр предоставляет пользователю возможность сброса зон доступности в регионе.
Hi..thank Вас за ответ. Я имею в виду зону доступности вместо региона. Я попробовал ваше предложение, но я получаю сообщение об ошибке: 'Access Denied for bucket: xxxxxxxxxxx.development. Пожалуйста, проверьте разрешение S3bucket. – MojoJojo
. Я создал выходную переменную, чтобы сбрасывать значение '{" Ref ":" AWS :: AccountId "} и получается, что он записывает значение моего идентификатора учетной записи ... учетную запись, используемую для создания stack и * not * идентификатор учетной записи, используемый для запуска ELB, как указано здесь: http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/enable-access-logs.html#enable-access-logs-console – MojoJojo
ОК. Я понимаю, что вы пытаетесь сделать. Нет никакой переменной для того, что вы хотите. Вы должны либо жестко закодировать эти идентификаторы учетных записей, либо использовать входные переменные в свой шаблон для них. –