amazon-web-services - AWS 政策 : Allow update specific record in route53 hosted zone

标签 amazon-web-services lets-encrypt

假设文档,我应该使用策略,如下所示:

{
   "Version": "2017-11-27",
   "Statement":[
      {   
         "Effect":"Allow",
         "Action": [
           "route53:ChangeResourceRecordSets"
         ],  
         "Resource": [
          "arn:aws:route53:::hostedzone/<ZONE_ID>"
         ]
   ]   
}

我需要一个非常安全的政策。

我无法在 arn.xml 中添加特定的资源记录集(区域中的一条记录)。
我可以使用 Condition使用 ChangeResourceRecordSets 检查应该更改的记录API 调用。如果我没错的话。

这对于仅自动更新公共(public)域区域中的一条记录是必要的。更新 _acme-challenge.ldap.example.com.记录自动更新让我们加密证书。我知道acme.sh可以实现我的目标。但我想编写自己的自定义和简单的脚本来做到这一点。

最佳答案

I can use Condition to check what record should be changed with ChangeResourceRecordSets API call. If I'm not mistaken.



我相信你可能弄错了。

Amazon Route 53 has no service-specific [condition] context keys that can be used in an IAM policy.

http://docs.aws.amazon.com/IAM/latest/UserGuide/list_route53.html



此外,没有一个 global condition keys似乎适用。

但是,我相信有一个解决方法。

为域 _acme-challenge.ldap.example.com 创建第二个公共(public)托管区域.我知道您可能在想“但这不是域!”但在相关意义上,它实际上仍然是一个域。

Route 53 将为这个新的托管区域分配 4 个新的名称服务器。记下这些服务器。

回到原来的托管区域,为 _acme-challenge.ldap.example.com 创建一条记录类型 NS .您将用于创建此记录的值将是 Route 53 分配给新托管区域的 4 个名称服务器,每行一个。不要更改任何一个区域中的任何现有 NS 记录。

这称为委托(delegate)——您将此特定子域的权限委托(delegate)给不同的托管区域,您会注意到自动分配了一组与处理您的父域的 Route 53 服务器完全不同的 4 台 Route 53 服务器。

您现在可以在新托管区域的根目录中创建一条新记录,并且当您对 _acme-challenge.ldap.example.com 进行 DNS 查询时,返回的答案将是来自新托管区域的答案。

现在,您可以只授予脚本修改新区域中的记录的权限,并且它将无法修改父区域中的任何内容,因为您在那里没有授予它任何权限。

关于amazon-web-services - AWS 政策 : Allow update specific record in route53 hosted zone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47527575/

相关文章:

node.js - NodeJs + Nginx .. upstream 在从 m upstream 读取响应头时过早地关闭了连接

amazon-web-services - AWS Lambda(Linux 内核版本 – 4.4.51-40.60.amzn1.x86_64)在 Interop.Crypto.Pkcs12Parse 处抛出 MissingMethodException

.net-core - 不能再运行 Win-Acme(让我们在 Windows Server 2019 上加密

amazon-web-services - 与 Redshift 的 AWS DMS 端点连接不起作用

amazon-web-services - 为什么 terraform + apt-get 会间歇性地失败?

ssl - 从 Let's Encrypt from scratch 生成 CRT 和 KEY ssl 文件

ssl - Nginx 允许来自任何域的流量

iis - URL 将 http 重写为 https 并加密

c# - 预签名网址和签名网址有什么区别?

python - 使用 boto3 列出具有特定应用程序标签的自动缩放组名称