合同会社FoodIT

エラー:Unable to locate credentials. You can configure credentials by running "aws configure".

post-cover

前提条件

  • M1 Mac OS: 12.6
  • aws-cli: 2.7.21
  • Python: 3.9.11
  • aws configure(~/.aws/confiure|credential)に複数プロファイルの設定値を用意している

エラー内容

aws cli でcloud frontのみ、キャッシュ削除しようとしたらエラーが出た話

#使用するプロファイルは [blog] のため以下を実行
$ export AWS_PROFILE=blog
$ aws cloudfront create-invalidation --distribution-id ********  --paths "/*"

Unable to locate credentials. You can configure credentials by running "aws configure".

ブログの管理に関して、簡単にshellスクリプトを作っていて、S3へのsyncは問題ないのにCloud Frontだけに対して、aws configure を再設定してね!って怒られる。

調査

  • cloud frontに対してのみ発生
  • S3やEC2への実行は問題ないもよう
  • roleも問題なし

原因

~/.aws/credentials に怖かったので作業ミスなど怖くて設定していなかったが 新規で[default] の部分に [blog]の内容を転記した。

$ aws cloudfront create-invalidation --distribution-id XXXXXXXXX --paths "/*"
{
    "Location": "https://cloudfront.amazonaws.com/2020-05-31/distribution/XXXXXXXXX/invalidation/I34I41Z7K9NJPA",
    "Invalidation": {
        "Id": "XXXXXXXXX",
        "Status": "InProgress",
        "CreateTime": "2022-09-16T05:17:29.219000+00:00",
        "InvalidationBatch": {
            "Paths": {
                "Quantity": 1,
                "Items": [
                    "/*"
                ]
            },
            "CallerReference": "XXXXXXXXX"
        }
    }
}

What's?

解決したのでよしとした。

© 2022 xshsaku foodit.co.jp