Назад | Перейти на главную страницу

Как я могу предоставить пользователю права доступа к домену, размещенному на Route 53, из командной строки?

Я использую Amazon Route 53 для размещения нескольких доменов, и мне нужно предоставить разрешение на несколько из этих доменов нескольким пользователям.

Как я могу выполнить этот процесс из командной строки?

Я не уверен, позволяет ли IAM делегировать доступ к определенным файлам зоны в Route53 или нет. Если бы это было так, я полагаю, все сводилось бы к следующим шагам:

  • Настройте IAM для своей учетной записи. Вы можете настроить адрес «Псевдоним учетной записи AWS», по которому ваши пользователи IAM могут входить в родительскую учетную запись.
  • Создайте группу IAM для каждого набора разрешений. Таким образом, для пользователей, которым вы хотите делегировать контроль над зоной company1.com, вы можете создать группу «Company1Admins». Таким образом, если вам нужно предоставить доступ большему количеству людей, все разрешения будут установлены, и вы можете просто добавить их в группу.
  • Теперь самое сложное при создании группы: вам нужно написать или отредактировать политику разрешений для каждой группы. Вероятно, вы можете просто начать с выбора шаблона (например, шаблона «Amazon Route 53 Full Access», а затем отредактировать его оттуда. Подробную информацию о политике см. В приведенном ниже коде.
  • Создайте учетные записи пользователей для тех, кому вы делегируете права. IAM позволяет вам добавлять определенные разрешения для пользователей или добавлять их в группы с определенными разрешениями. Вы можете назначить пароль для каждого пользователя. Кроме того, при создании пользователя вам будут предоставлены его ключи доступа (идентификатор ключа и секретный ключ, который им понадобится для доступа из командной строки), и вы можете потребовать от них использовать двухфакторную аутентификацию, если хотите.
  • После создания вашей группы и создания вашей учетной записи просто добавьте своего пользователя в качестве члена группы.
  • ТЕСТ!!!

О политике

Вот стандартный шаблон «полного администратора» для разрешений 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 или нет.

Удачи!