Amazon web services 如何通过Cron临时打开AWS安全组上的端口以续订证书?

Amazon web services 如何通过Cron临时打开AWS安全组上的端口以续订证书?,amazon-web-services,amazon-ec2,lets-encrypt,Amazon Web Services,Amazon Ec2,Lets Encrypt,假设我想在AWS基础设施的某个安全组中打开一个端口80,以续订Let’s Encrypt证书,重新启动BD,然后在下一个命令运行后关闭它。我该怎么做 用下面的代码编写一个脚本并简单地将其添加到cron中就足够了吗 GROUPID = $(aws ec2 describe-security-groups) 获取当前服务器的安全组ID,然后运行 aws ec2 authorize-security-group-ingress --group-id $GROUPID --ip-permissions

假设我想在AWS基础设施的某个安全组中打开一个端口80,以续订Let’s Encrypt证书,重新启动BD,然后在下一个命令运行后关闭它。我该怎么做

用下面的代码编写一个脚本并简单地将其添加到cron中就足够了吗

GROUPID = $(aws ec2 describe-security-groups)
获取当前服务器的安全组ID,然后运行

aws ec2 authorize-security-group-ingress --group-id $GROUPID --ip-permissions '[{"IpProtocol": "tcp", "FromPort": '0', "ToPort": '80', "IpRanges": [{"CidrIp": "0"}]}]'    

为了授权访问

然后在该端口上运行所需的命令

sudo certbot renew
然后

撤销访问权

然后


还是有更优雅的解决方案?

开放入站端口80如何帮助您续订证书?一般来说,这种方法似乎与我们对DevOps和不可变基础设施的所有了解背道而驰。好吧,要通过加密更新证书,它必须通过:80端口访问服务器(我不知道为什么)。所以如果我通常关闭那个端口,我想打开它来启用这个临时访问。有什么更好的方法可以做到这一点?
aws ec2 revoke-security-group-ingress
# restart DB