[英]Getting AccessDenied Error Trying to Get Wildcard SSL with Certbot and Route53 Plugin
我的任务是为某些域设置 Wilcard SSL。 这些域通过 AWS Route53 托管。
我在托管应用程序的Ubuntu 20.4机器上使用Certbot 。 我还为 Certbot 安装了 Route53 DNS 插件。
我运行这个命令:
sudo certbot certonly --dns-route53 --email 'me@derp.com' --domain 'mywebsite.rocks' --domain '*.mywebsite.rocks' --agree-tos --non-interactive
出于安全原因删除真实域
我收到此错误:
An error occurred (AccessDenied) when calling the ListHostedZones operation: User: arn:aws:sts::789148085273:assumed-role/AmazonLightsailInstanceRole/i-0871f2572906140c4 is not authorized to perform: route53:ListHostedZones because no identity-based policy allows the route53:ListHostedZones action
首先让我解释一下我是如何在 AWS 控制台中设置 IAM 用户的。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "derp0",
"Effect": "Allow",
"Action": [
"route53:GetHostedZone",
"route53:ChangeResourceRecordSets",
"route53:ListResourceRecordSets"
],
"Resource": "arn:aws:route53:::hostedzone/WHAT-EVER-MY-ID-IS-HERE"
},
{
"Sid": "derp1",
"Effect": "Allow",
"Action": "route53:ListHostedZones",
"Resource": "*"
}
]
}
用我的实际域的托管区域 ID 替换WHAT-EVER-MY-ID-IS-HERE
然后我创建了一个新的IAM 用户,并在设置过程中将上述策略附加到该用户。
然后,我为我的新用户创建了一个访问密钥,并记下了AccessKeyId
和SecretAccessKey
。 这可以以编程方式使用。
在服务器上,我按照文档中的说明在/root/.aws/config
中创建了一个配置文件。 我也试过~/.aws/config
但因为我使用sudo
前者似乎是首选位置(虽然我可能是错的,并且在我的测试期间,无论如何都没有用)
如前所述,我运行命令并收到错误。
在web上下找了解决办法,没找到。
感谢我能从民间获得的任何帮助。
快速检查后,我找到了以下文章:
https://certbot-dns-route53.readthedocs.io/en/stable/
看看它,它可能会帮助您设置必要的策略。
当然,如果不是必须使用 AWS,您始终可以将网站部署到另一个提供商,而无需设置策略,一切都会顺利进行。
然后搜索导致错误的“角色”,因为它没有足够的权限,因此在您的情况下,您的错误消息表明它是“AmazonLightsailInstanceRole”。 找到该角色后,附加一个具有“route53:ListHostedZones”权限的策略。 不确定为什么您的错误消息显示“AmazonLightsailInstanceRole”的“假定角色”,但我的是“AmazonSSMRoleForInstancesQuickSetup”,它给我的错误与您遇到的错误相同。 但是在我附加了一个具有“certbot-dns-rout53”指定权限的策略之后,它能够获取并安装证书。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.