🦓

AWS CLI

に公開

はじめに

AWSコンソールからCLIに移動したいのでインストールと初期設定についてまとめてみました。

AWS CLIをインストールする

brew install awscli
==> Fetching awscli
==> Downloading https://ghcr.io/v2/homebrew/core/awscli/manifests/2.13.8
################################################################################################################################# 100.0%

==> Installing awscli
==> Pouring awscli--2.13.8.ventura.bottle.tar.gz
==> Caveats
The "examples" directory has been installed to:
  /usr/local/share/awscli/examples

初期設定

AWS CLI をインストールした後、AWS 認証情報とデフォルト設定を使用して設定します。

aws configure

AWS アクセスキー ID、シークレットアクセスキー、デフォルトリージョン、出力形式を入力するようにプロンプトが表示されます。
デフォルトリージョンと出力形式は任意です。

アクセスキー ID とシークレットアクセスキーを取得する

AWS アクセスキー ID とシークレットアクセスキーを取得するために以下の手順を実行します:

AWS マネジメントコンソールにサインインします。
- 「サービス」メニューから「IAM」(Identity and Access Management)を選択します。
ナビゲーションペインで「ユーザー」を選択し、IAM ユーザーを選択します。
- 「ユーザーの詳細」セクションで「セキュリティ認証情報」タブを選択します。
- 「アクセスキー」の下で、「アクセスキーを作成」を選択して新しい認証情報を生成するか、既存のものを管理します。

➜  ~ aws configure
AWS Access Key ID [None]: ***********
AWS Secret Access Key [None]: ************
Default region name [None]: 
Default output format [None]: 

設定を確認する

AWS CLI を設定したら、簡単なコマンドを実行してテストできます。
たとえば、S3 バケットの一覧を表示するには以下のコマンドを実行します:

ユーザーがS3のバケットへのアクセス権限を持っていることを前提とします。
ない場合許可ポリシーから追加しましょう。

➜  ~ aws s3 ls
2023-07-30 15:17:49 ******

リージョンと出力フォーマットを設定する

初期設定のDefault region name [None]: と Default output format [None]:を飛ばしましたので手動で設定します。

AWS CLIでは、設定(configuration)と資格情報(credentials)は、AWSサービスとのやり取りを管理するための2つの異なる要素です。

➜  .aws ls
config      credentials
  1. 設定(~/.aws/config
    設定ファイルは、AWS CLIの様々な設定を行うためのファイルで、デフォルトのリージョン、出力形式などが含まれます。
    このファイルは、機能の振る舞いに影響を与える設定を格納しますが、機密情報の資格情報は含まれません。
➜  ~ vim ~/.aws/config
[default]
region = us-east-1
output = json
  1. 資格情報(~/.aws/credentials
    資格情報ファイルは、AWSアクセスキーとシークレットアクセスキーを格納します。
    これらのキーは、AWSサービスへのリクエストを認証するために使用されます。
    このファイルは、AWSリソースへのアクセスを許可する役割を果たします。
    最初に入力したクレデンシャルがここに入ってることを確認します。
➜  ~ vim ~/.aws/credentials
[default]
aws_access_key_id = アクセスキー
aws_secret_access_key = シークレットキー

要するに、credentials ファイルはAWSアクセスキーを格納し、config ファイルはAWS CLIの動作に関連する設定(デフォルトのリージョン、出力形式など)を格納します。これらのファイルは協力して、AWS CLIを使用してAWSサービスとやり取りするための安全でカスタマイズ可能な方法を提供します。

credentials ファイルとconfigファイルには、異なる設定を持つプロファイルを複数定義することもできます。

設定についてドキュメントからもご参考ください。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-files.html

終わりに

設定を反映されたことを確認します。

➜ aws configure list
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     ****************RCXF shared-credentials-file    
secret_key     ****************q54s shared-credentials-file    
    region                us-east-1      config-file    ~/.aws/config

Discussion