Я использую Amazon Route 53 для размещения нескольких доменов, и мне нужно предоставить разрешение на несколько из этих доменов нескольким пользователям.
Как я могу выполнить этот процесс из командной строки?
Я не уверен, позволяет ли IAM делегировать доступ к определенным файлам зоны в Route53 или нет. Если бы это было так, я полагаю, все сводилось бы к следующим шагам:
Вот стандартный шаблон «полного администратора» для разрешений Route53 в IAM:
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"route53:*"
],
"Resource": [
"*"
]
},
{
"Effect": "Allow",
"Action": [
"elasticloadbalancing:DescribeLoadBalancers"
],
"Resource": [
"*"
]
}
]
}
Здесь вы увидите, что IAM предоставляет разрешения для двух вещей в этой политике - Route53 и ELB. ELB необходимы некоторым пользователям Route53, если они указывают вершину зоны в качестве псевдонима на адрес ELB (см. http://aws.amazon.com/route53/faqs/#Zone_apex). Я бы посоветовал вам оставить эту часть, если вы не знаете, что вашему пользователю она не понадобится, и если она проходит нормально. Эта политика позволяет пользователю только перечислять ELB, но не контролировать их, поэтому кажется, что наихудший риск заключается в том, что они указывают свой домен на один из ваших ELB, который вам может понадобиться в какой-то момент.
Значок * в разрешенных действиях для Route53 позволит вашему пользователю создавать, редактировать или удалять наборы записей в файле зоны, на который вы предоставляете им разрешения.
Итак, единственная часть, которая нуждается в редактировании, - это * внутри Resource": ["*"]
директива. Вам нужно будет перейти на панель Route53 на панели инструментов AWS и найти «Идентификатор размещенной зоны» для домена, которому вы хотите делегировать, что-то вроде ZNMGKD5JKTWVZ (что похоже на строку из 13 или 14 символов - я только что просмотрел несколько зоны в моей учетной записи, некоторые из них имеют длину 13 символов, а некоторые - 14), а затем либо вставьте это вместо *, либо, возможно, просто укажите первые 12/13 или 13/14 строки и поместите * в качестве последнего символа , или просто протестируйте со всей строкой и без *.
Таким образом, ваша политика будет выглядеть примерно так:
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"route53:*"
],
"Resource": [
"arn:aws:route53::::Z5SL2DJKUDXFAK"
]
},
{
"Effect": "Allow",
"Action": [
"elasticloadbalancing:DescribeLoadBalancers"
],
"Resource": [
"*"
]
}
]
}
Однако, оглядываясь назад на свой вопрос, вы спрашиваете, как это сделать с помощью интерфейса командной строки. Я не уверен, имеете ли вы в виду выполнение всего делегирования из интерфейса командной строки или пользователь должен выполнять свою работу DNS из интерфейса командной строки? Если это первое, вы можете управлять IAM через его API, включая указание политики безопасности для создаваемой группы.
Вот инструмент IAM для API: http://aws.amazon.com/developertools/AWS-Identity-and-Access-Management/4143
Вот множество вызовов, которые вы можете сделать для этого API: http://aws.amazon.com/iam/#detailed_description
Вот куча других ресурсов IAM: http://aws.amazon.com/iam/#resources
Если политику IAM нужно изменить, это может быть очень полезно: http://awspolicygen.s3.amazonaws.com/policygen.html
Если у меня будет немного свободного времени, я могу попробовать проверить это сам и посмотреть, все ли понятно. Я видел другие службы, где IAM считал, что делегирование выполняется правильно, но некоторые разрешения пользователей по-прежнему не работали должным образом. Мне будет интересно посмотреть, так ли это в Route53 или нет.
Удачи!