いわゆる --dns-route53
的なオプションつけた時のヤツ。
クレデンシャルがない
Unable to locate credentials To use certbot-dns-route53, configure credentials as described at https://boto3.readthedocs.io/en/latest/guide/configuration.html#best-practices-for-configuring-credentials and add the necessary permissions for Route53 access.
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
が無くてアクセスできない、というエラー。 とりあえず動かすだけなら、 export で直接値を指定すれば動く。
~/.aws/credentials
に複数書いてあって、別のプロファイルを指定したいとかであれば export AWS_PROFILE=プロファイル名; certbot ...
などでワンライナーにしてしまうと良い。
クレデンシャルが一致しない
An error occurred (SignatureDoesNotMatch) when calling the ListHostedZones operation: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details. To use certbot-dns-route53, configure credentials as described at https://boto3.readthedocs.io/en/latest/guide/configuration.html#best-practices-for-configuring-credentials and add the necessary permissions for Route53 access.
does not match the signature
そんな馬鹿な、先日このクレデンシャル利用したぞ……と思ってググったら、どうも特殊文字がダメらしい。
問題が出たクレデンシャルを確認したところ、シークレットアクセスキーに /
が含まれていた。 他環境のクレデンシャルでは記号が含まれていても /
が存在するのは、問題が起きたこれのみだったので、たぶんこれだと思われる。
結局、ManagementConsole からアクセスキー (ユースケース: AWS CLI) を作り直したら無事通った。
boto3
ちなみにエラー出力に含まれる boto3 の best-practices-for-configuring-credentials だけど、見てもあんまり役に立たないのであった。