AWS CLI の aws configure コマンドで設定したcredentials情報が反映されない問題

こんにちは!kossyです!




さて、今回はAWS CLIaws configure コマンドで設定したcredentials情報が反映されない問題に遭遇したので、
解決した方法をブログに残してみたいと思います。




環境
aws-cli/2.1.15
Python/3.9.1
Darwin/19.6.0




事象

以下のコマンドでcredential情報を設定した後、

aws configure

AWS Access Key ID: YOUR_ACCESS_KEY_ID
AWS Secret Access Key: YOUR_SECRET_ACCESS_KEY
Default region name: US-EAST-1
Default output format: json

aws s3 ls でコマンドで疎通確認をしようとしたところ、

$ aws s3 ls

An error occurred (InvalidAccessKeyId) when calling the ListBuckets operation: The AWS Access Key Id you provided does not exist in our records.

認証情報が違っているよ、とのこと。

きちんと設定されているか以下のコマンドで確認

$ aws configure list

      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     ****************ABCD             env
secret_key     ****************EFGH             env
    region                us-east-2      config-file    ~/.aws/config

Typeがshared_credentials_fileになるはずが、envになってました。。。


環境変数を読み込んでいた

以下の記事を読んだところ、.zprofile/.bash_profileの環境変数を読みに行ってることが判明。

.zprofile/.bash_profileの export aws_access_keyとaws_secret_keyを削除し、ターミナルを立ち上げ直したところ、

$ aws configure list

      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     ****************ABCD shared-credentials-file
secret_key     ****************EDGH shared-credentials-file
    region                us-east-2      config-file    ~/.aws/config

Typeの値が変わったことが確認できました。

再度、aws s3 ls コマンドを実行

$ aws s3 ls

2021-01-02 13:30:25 sample-app

無事疎通確認ができました。




勉強になりました。