AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

certbot で route53 を利用する際のありがちなエラー

いわゆる --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

そんな馬鹿な、先日このクレデンシャル利用したぞ……と思ってググったら、どうも特殊文字がダメらしい。

qiita.com

github.com

問題が出たクレデンシャルを確認したところ、シークレットアクセスキーに / が含まれていた。 他環境のクレデンシャルでは記号が含まれていても / が存在するのは、問題が起きたこれのみだったので、たぶんこれだと思われる。

結局、ManagementConsole からアクセスキー (ユースケースAWS CLI) を作り直したら無事通った。

boto3

ちなみにエラー出力に含まれる boto3 の best-practices-for-configuring-credentials だけど、見てもあんまり役に立たないのであった。

boto3.amazonaws.com