AWS CLIを利用するため必要な初期設定について
AWS CLIをWSL2(Ubuntu)にインストールし、試しにコマンド打ってみようと思ったらこんなものが。。。
$ aws s3 ls s3://test/ Unable to locate credentials. You can configure credentials by running "aws configure".
データアナリティクス事業本部 荒木です。
AWS CLIインストール後のコマンド操作するための初期設定について自分の頭の整理も含め紹介します!
環境
- Ubunts 20.04.4(WSL2)
- Windows 10
- AWS CLI (インストールされていることが前提です)
結論
設定が必要なものは以下です。
- ~/.aws/credentialsにアクセスキーの設定
- ~/.aws/configに認証情報のプロファイルを設定
この2つです!
~/.aws/credentialsにアクセスキーの設定
アクセスキーID&シークレットアクセスキーの取得
まず、設定する自身のAWSアカウントのアクセスキーID&シークレットアクセスキーを取得します。
IAMからログインしているIAMユーザの認証情報を開きます。
「アクセスキーの作成」を選択し、アクセスキーID及びシークレットアクセスキーを作成します。
※作成したアクセスキーは.csvファイルで保存し、他人に知られないようご自身で管理してください。
以上でアクセスキーID&シークレットアクセスキーの取得が完了です。
~/.aws/credentialsに設定
以下コマンドを実行し、対話式で認証情報を設定していきます。
$ aws configure AWS Access Key ID [None]: {アクセスキーID} AWS Secret Access Key [None]: {シークレットアクセスキー} Default region name [None]: ap-northeast-1 Default output format [None]: json
- AWS Access Key ID [None]: {アクセスキーID}
- AWS Secret Access Key [None]: {シークレットアクセスキー}
- Default region name [None]: {特に指定がなければ最寄りのリージョンを設定}
- Default output format [None]: {defaultではjson}
~/.aws/credentials
を確認すると以下のようにdefaultの認証情報プロファイルが登録されます。
$ cat credentials [default] aws_access_key_id = {アクセスキーID} aws_secret_access_key = {シークレットアクセスキー}
defaultでなくプロファイルの名前を指定したい場合には、aws configure --profile {profilename}
とすることで名前を指定することができます。
~/.aws/configに認証情報のプロファイルを設定
次に設定プロファイルの設定を行います。ここでは、異なる認証情報などをプロファイルごとに設定することができ、CLIコマンド実行時にプロファイル名を指定することで設定された認証情報でアクセスすることができるようになります。
~/.aws/config
に以下を記述する。
[profile sample] region=ap-northeast-1 mfa_serial={MFAが有効になっている個人アカウントのiamロール} role_arn={スイッチしたい別アカウントのiamロール} source_profile=default
- region={アクセスしたいリージョン}
- mfa_serial={MFAが有効になっている個人アカウントのiamロール}
- role_arn={スイッチしたい別アカウントのiamロール}
- source_profile={
~/.aws/credentials
に登録した認証情報}
source_profile
に~/.aws/credentials
に登録した認証情報のプロファイル名を指定することで使用する認証情報を切り替えることが可能です。
コマンド実行してみた
ここまで設定し、再度以下のコマンドを実行してみます。
$ aws s3 ls s3://test/ --profile sample
MFA codeの入力を要求されるので入力します。
Enter MFA code for {MFAが有効になっている個人アカウントのiamロール}: PRE test/
すると、無事S3バケット内部のフォルダを確認することができました。
まとめ
接続先のアカウントが増えたり管理する認証情報が増えてきた際には、プロファイル名をわかりやすいものにしていくことで、管理やCLIでのコマンド操作もやりやすくなっていくかと思います!
簡単な設定ではありますが、AWS CLIを使う際は必要な設定となるので覚えておきましょう!