Я хотел бы программно изменить CNAME набора записей внутри размещенной зоны на Amazon Route 53, но я хотел бы ограничить доступ пользователя ТОЛЬКО к этому набору записей. Из того, что я видел в документации, IAM позволяет указывать операцию только на основе «hosted-zone» или «изменений». Это означает, что мой пользователь должен иметь власть над ВСЕМ моим набором записей, чтобы изменить один.
Последствия ошибки в коде в таком случае более чем катастрофичны. Если проверки имени размещенной зоны ошибочны по какой-либо причине, я мог бы из-за ошибки применить изменения к более чем одному набору записей (представьте, что многие наборы записей теперь указывают на один и тот же ящик / инфраструктуру).
Мой вопрос не в том, чтобы не делать ошибок в коде, а в том, чтобы создать пользователя для защиты системы от таких возможностей. Существует способ ограничить доступ (или обходной путь), чтобы позволить новому пользователю IAM получить доступ только к одной / ограниченному набору размещенных зон.
На уровне IAM, а не программно.
Спасибо.
Один из способов сделать это - создать новую зону, являющуюся поддоменом основного домена, например stuff.example.com
и делегировать NS поддомена этой вторичной зоне. Дайте им привилегии IAM для зоны этого поддомена, и они смогут создавать такие поддомены, как my.stuff.example.com
. Для записей, которые вы хотите быть первоклассными гражданами, вы можете CNAME
my.example.com
к my.stuff.example.com
, что функционально позволит им управлять этим поддоменом без полных привилегий.
У меня была возможность задать этот вопрос нескольким архитекторам решений aws на последней конференции amazon aws, и они подтвердили, что это невозможно. IAM или лучше Route53 не имеет такого уровня детализации.
Вы можете создать функцию AWS Lambda, которая внесет это изменение (только для этой отдельной записи) и создать политику вызова для этой функции.