The config profile could not be found

TL;DR — 使用しているプロファイル名が、プロセスが読み取っている AWS 設定ファイルに存在しません。よくある3つの原因: 古い AWS_PROFILE 環境変数、--profile/profile_name のタイプミス、または誤ったセクションヘッダー配下でのプロファイル定義です。~/.aws/config ファイルには [profile myprofile] が必要で、~/.aws/credentials では素の [myprofile] を使います。aws configure list-profiles を実行して比較してください。

意味

botocore.exceptions.ProfileNotFound: The config profile (myprofile) could not be found

DynamoDB 呼び出しに署名する前に、SDK は認証情報プロファイルを解決します。もしプロファイルが 明示的に要求された 場合(AWS_PROFILE--profile、または boto3.Session(profile_name=...) 経由)で、読み取り対象の config/credentials ファイルにその名前のセクションが存在しないと、解決はこのエラーで停止します。AWS には何も到達しておらず、完全にローカルの設定ルックアップが失敗しているだけです。

発生する理由

  • AWS_PROFILE が存在しないプロファイルを指している — シェルの rc ファイル、コンテナイメージ、あるいは CI 設定でずっと前に設定され、その後プロファイルがリネームまたは削除された。
  • タイプミスや大文字小文字の不一致 — プロファイル名は完全一致で照合されます。
  • セクションヘッダー構文の誤り~/.aws/config では名前付きプロファイルを [profile myprofile] と宣言する必要があります。そこに [myprofile] と書くと CLI/SDK は見つけられません(素の形式は ~/.aws/credentials に属します)。
  • ファイルがプロセスの探す場所にないAWS_CONFIG_FILE/AWS_SHARED_CREDENTIALS_FILE によるパスの上書き、sudo/サービスユーザー下での別ホームディレクトリ、または ~/.aws マウントのないコンテナ。

修正方法

  1. 環境から実際に見えているものを一覧表示します:

    aws configure list-profiles
    env | grep -i '^AWS_'
  2. ポインタを修正または解除しますunset AWS_PROFILE(または一覧にあるプロファイルへ設定)し、--profile/profile_name のスペルを訂正します。

  3. セクションヘッダーを確認します:

    # ~/.aws/config
    [profile myprofile]
    region = eu-west-1
    
    # ~/.aws/credentials
    [myprofile]
    aws_access_key_id = ...
    aws_secret_access_key = ...
  4. プロファイルが存在しなかった場合は作成しますaws configure --profile myprofile(Identity Center プロファイルなら aws configure sso)。

  5. コンテナ/CI では、プロファイルファイルよりも環境認証情報やロールを優先します。あるいは、実際にプロファイルを定義しているファイルを AWS_CONFIG_FILE にマウント/指定します。

プロファイルが解決したら、実際にテーブルへ到達できるか確認しましょう。DynoTable デスクトップアプリ は AWS プロファイルを使って接続し、「どのプロファイルがどのテーブルを見えるか」を可視化します。また DynamoDB 料金計算ツール は、そのアカウントのワークロードにかかるコストの見積もりに役立ちます。

関連するエラー

References

最終検証日 2026-07-13、上記にリンクした公式 AWS ドキュメントに照らして確認しました。

Console なしで DynamoDB を扱う

DynoTable は DynamoDB 向けの高速なデスクトップクライアントです — テーブルを閲覧し、SQL スタイルのクエリを実行し、アイテムをローカルで編集できます。