[英]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.