AWSクライアントでクレデンシャルを一時的に指定してコマンドを実行する方法

こんにちは、さるまりんです。

AWSクライアントを使ってサービスにアクセスし、コマンドを実行するとき、キーやシークレットのクレデンシャル情報が必要です。

利用する際は、aws configureを使ってプロファイルを作成し、コマンド実行時に--profileでプロファイルを指定して呼び出すことで行います。

こんな感じです。

プロファイル作成

aws configure set aws_access_key_id "あなたのアクセスキー" --profile my-profile
aws configure set aws_secret_access_key "あなたのシークレットキー" --profile my-profile

コマンド実行時

aws --profile my-profile [実行したいコマンド]

プロファイルが必要なくなった場合は~/.aws/credentials~/.aws/configから該当の箇所を削除して保存すればOKです。

credentials

[default]
aws_access_key_id = EXAMPLEID
aws_secret_access_key = EXAMPLEKEY

[my-profile] # ここを削除
aws_access_key_id = MYPROFID
aws_secret_access_key = MYPROFKEY

config

[default]
region = us-west-2
output = json

[profile my-profile] # ここを削除
region = us-east-1
output = text

ここまでしたくないこともあります。

その場合は環境変数として設定し一時的に利用することもできます。

script.sh

export AWS_ACCESS_KEY_ID="あなたのアクセスキー"
export AWS_SECRET_ACCESS_KEY="あなたのシークレット"
aws [実行したいコマンド]

こんなふうに一行で指定することで他には影響は与えずに特定のコマンドだけでクレデンシャルを利用することもできます。

AWS_ACCESS_KEY_ID="あなたのアクセスキー" AWS_SECRET_ACCESS_KEY="あなたのシークレット" aws [実行したいコマンド]

クレデンシャル情報はとても大切です。
どんなふうに利用するかはいろいろ検討しなければなりません。
安全に便利に。それをいつも考えつつ開発していきたいと思います。

読んでくださってありがとうございました。

それではまた!