如何通过命令行授予用户对 Route 53 托管域的权限?

如何通过命令行授予用户对 Route 53 托管域的权限?

我正在使用 Amazon Route 53 来托管多个域,并且需要向多个用户授予其中几个域的权限。

我如何从命令行完成此过程?

答案1

我不确定 IAM 是否允许委派访问 Route53 内的特定区域文件。如果是,我想应该归结为以下步骤:

  • 为您的账户设置 IAM。您可能需要设置一个“AWS 账户别名”地址,以便您的 IAM 用户可以登录父账户。
  • 为每个权限集创建一个 IAM 组。因此,对于您想要委派 company1.com 区域控制权的用户,您可以创建一个“Company1Admins”组。这样,如果您需要向更多人授予访问权限,权限将全部设置好,您只需将他们添加到组中即可。
  • 现在,创建组时最棘手的部分是:您需要为每个组编写或编辑权限策略。您可能只需选择一个模板(可能是“Amazon Route 53 完全访问”模板),然后从那里进行编辑即可。有关策略的详细信息,请参阅下面的代码。
  • 为您要委派权限的用户创建用户账户。IAM 允许您向用户添加特定权限,或将他们添加到具有特定权限的组中。您可以为每个用户分配一个密码。此外,当您创建用户时,您将获得他们的访问密钥(密钥 ID 和他们进行命令行访问所需的密钥),并且您可以要求他们使用双因素身份验证(如果您愿意)。
  • 一旦创建了您的组并创建了您的用户帐户,只需将您的用户添加为该组的成员即可。
  • 测试!!!

关于政策

以下是 IAM 中 Route53 权限的默认“完整管理”模板:

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "route53:*"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "elasticloadbalancing:DescribeLoadBalancers"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}

您将在此处看到 IAM 在该策略中授予两项权限 - Route53 和 ELB。如果某些 Route53 用户将区域顶点作为别名指向 ELB 地址,则需要 ELB(请参阅http://aws.amazon.com/route53/faqs/#Zone_apex)。我建议您保留该部分,除非您知道您的用户不需要它并且测试正常。此策略仅允许用户列出 ELB 而不是控制它们,因此似乎最糟糕的风险是他们将他们的域指向您的某个 ELB,而您可能在某个时候想要或需要它。

Route53 允许的操作中的 * 将允许您的用户在您授予他们权限的区域文件内创建、编辑或删除记录集。

因此,唯一需要编辑的部分是Resource": ["*"]指令。您需要跳转到 AWS 仪表板的 Route53 面板并查找要委托给的域的“托管区域 ID”,例如 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": [
        "*"
      ]
    }
  ]
}

但是,回顾您的问题,您问如何从 CLI 执行此操作。我不确定您的意思是从 CLI 执行所有委派还是让用户从 CLI 执行 DNS 工作?如果是前者,您可以通过其 API 控制 IAM,包括为您创建的组指定安全策略。

这是 API 的 IAM 工具: 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 中是否存在这种情况。

祝你好运!

相关内容