

aws のコマンドラインを実行していくと、「今定義されている profile 一覧」を取得したくなります。 grep
を少し書けば実行できそうではありますが、たとえばサーバーに ssh する度にそのスクリプトを持ってくるないし grep を入力していくのは、少し手間です。
aws-cli にこの機能があるならば、例えば aws-shell の中でもろもろの操作を行うことで割と簡単に作業できそうです。

### 質問

  * 今 `aws configure` されていて利用可能な profile 名称一覧を取得するコマンドは定義されていますか?


CC BY-SA 3.0
2018-02-01T01:17:49.010
41364
2020-05-08T05:48:06.367
754
question
aws aws-cli
aws コマンドで、今定義されている profile 一覧は取得できる?


一覧の取得と少し違いますが、pipでインストールしたawsコマンドの入力補完で何が定義されているか参照しています。  
下記のように`--profile`オプションのあとで[Tab]で保管すると下記のように定義されているプロファイル名が表示されます。

[code]

     $ aws ec2 describe-instances --profile 
     default   prof1       prof2
     $
    
[/code]

現在、`aws
configure`や`AWS_DEFAULT_PROFILE`など、何らかの方法で設定されているクレデンシャルは、下記のコマンドで確認できます。

[code]

    $ aws sts get-caller-identity
    {
        "Account": "*****", 
        "UserId": "*****", 
        "Arn": "arn:aws:iam::****"
    }
    
[/code]


CC BY-SA 3.0
2018-04-20T14:27:25.747
43439
2018-04-20T14:27:25.747
5285
41364
answer


以下のコマンドで設定ファイルのなかみを確認する事ができます。  
この中に、現在設定されているprofileの一覧があります。

[code]

    cat ~/.aws/credentials
    
[/code]


CC BY-SA 4.0
2020-05-08T04:27:46.140
66417
2020-05-08T04:27:46.140
9815
41364
answer


AWSには[設定ファイルと認証情報ファイル](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-
configure-files.html)があります。設定ファイル `~/.aws/config`
だけに記述されているプロファイルもあれば、認証情報ファイル`~/.aws/credentials` だけに記述されているプロファイルもあります。

更に[環境変数](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-
envvars.html)もあります。`AWS_CONFIG_FILE`や`AWS_SHARED_CREDENTIALS_FILE`を使って別の設定ファイルや認証情報ファイルに切り替えることもできます。

ですので`~/.aws/credentials`だけを参照しても解決しない場合があります。

* * *

ksaitoさんが提案されているように

[code]

    $ aws --profile 
     default   prof1       prof2
    
[/code]

で補完候補として出力されるわけですが、であれば、その[補完コマンド](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-
configure-completion.html)を直接実行してしまえば質問のプロファイル一覧を取得できます。具体的には

[code]

    $ env COMP_LINE='aws --profile ' aws_completer
    default
    prof1
    prof2
    
[/code]

こんな感じでしょうか。（`env`は使っても使わなくても構いません）


CC BY-SA 4.0
2020-05-08T05:48:06.367
66421
2020-05-08T05:48:06.367
4236
41364
answer