AWS をコマンドから操作する AWS CLI

● 1. AWS CLIのダウンロード

https://aws.amazon.com/jp/cli/

・1-1.AWS CLIインストールの確認

which aws
aws --version

以下のように返ってくればインストールok

/usr/local/bin/aws
aws-cli/2.11.17 Python/3.11.3 Darwin/22.4.0 exe/x86_64 prompt/off

● 2. AWS CLI の設定

次の2つの設定が必要です。設定しましょう。

2-1. アクセスキーを作成する ( ~/.aws/credentials )
2-2. 認証情報のプロファイルを設定する ( ~/.aws/config )

引用 : https://bit.ly/424HSsx

・2-1. アクセスキーを作成する

AWSコンソールログイン → IAM → ユーザー →(対象のユーザー選択)→ セキュリティ認証情報→ アクセスキーの作成
から作成します。


               ↓

               ↓

最後にCSVファイルをダウンロードします。ダウンロードしたファイルは ~/aws_cli/ にでも保存しておきましょう。


・2-2. 認証情報のプロファイルを設定

コマンドラインから次のコマンドで設定を行います
<プロファイル名>のところは IAM ユーザー名にしておくとわかりやすいと思います

aws configure --profile <プロファイル名>
aws configure
AWS Access Key ID [None]: <アクセスキーID。ダウンロードしたCSVからコピーする>
AWS Secret Access Key [None]: <シークレットアクセスキー。ダウンロードしたCSVからコピーする>
Default region name [None]: <リージョン。例 : us-west-2>
Default output format [None]: json

作成されたプロファイルの確認

cd ~/.aws
ls -la
cat config
cat credentials

これでとりあえずの準備が完了です
プロファイルを削除するにはファイルごと削除するか、エディタで開いて対象のプロファイルを削除します。

・2-3. 平文の ~/.aws/credentials を暗号化して使用する AWS vault

cat ~/.aws/credentials

とすればわかるように、いくら自分のローカル端末とは言え平文のままでは危険です。
aws-vault を設定しましょう。

aws-vault を使って AWS のアクセスキーを暗号化して扱おう | microCMSブログ

● 3. AWS CLI コマンドの実行

・3-1. プロファイルを設定して実行する(プロファイルの設定が1度ですみます)

S3 の ディレクトリ一覧を取得する

export AWS_PROFILE=my-profile
aws s3 ls

通常は .bash_profile にでも指定しておきます

.bash_profile

# AWS CLI
export AWS_PROFILE=my-profile

・3-1. プロファイルを都度設定して実行する(プロファイル毎回指定)

S3 の ディレクトリ一覧を取得する

aws s3 ls --profile my-profile

プロファイルを先に指定してもokです

aws --profile my-profile s3 ls 

ユーザー情報を取得

aws sts get-caller-identity

● プロファイルを切り替え関数を作成する(要:fzf)

引用 : https://bit.ly/48MPfHJ

faws で切り替えコマンドが起動します。

function faws() {
  local profile=$(aws configure list-profiles | sed "/default/d" | sort | fzf )
  export AWS_PROFILE="$profile"
}

● プロファイルを切り替えるユーティリティーコマンド awsp

https://github.com/johnnyopao/awsp

● aws s3 のコマンド一覧

よく使うコマンド

バケット(フォルダ)内のファイル数とファイルサイズの合計を取得

aws s3 ls s3://[バケット名]/[フォルダ名]/  --recursive --human --sum

S3上のファイルをローカルにダウンロードする

aws s3 cp s3://【バケット名】/【フォルダ名】/  ./

S3上のフォルダ内のすべてのファイルを一括でをローカルにダウンロードする

aws s3 cp s3://【バケット名】/【フォルダ名】/  ./   --recursive

カレントディレクトリ内の sample.txt を S3 の backet-name/fonder-name にアップロードする

aws s3 cp ./sample.txt s3://backet-name/fonder-name

カレントディレクトリごと backet-name/fonder-name にアップロードする

aws s3 cp ./ s3://backet-name/fonder-name --recursive
# バケットの一覧を表示する
aws s3 ls

# バケットの内容を表示する
aws s3 ls s3://{バケット名}/{パス}

# バケットを作成する
aws s3 mb s3://{バケット名}

# バケットを削除する(空でない場合は削除されない)
aws s3 rb s3://{バケット名}

# バケットを削除する(空でなくても削除される)
aws s3 rb s3://{バケット名} --force

# バケットの内容をローカルのフォルダと同期する(追加・更新のみで削除されない)
aws s3 sync {フォルダパス} s3://{バケット名}/{パス}

# バケットの内容をローカルのフォルダと同期する(削除もされる)
aws s3 sync {フォルダパス} s3://{バケット名}/{パス} --delete

# ローカルのファイルをバケットにコピーする
aws s3 cp {ファイルパス} s3://{バケット名}/{パス}

# ローカルのファイルをバケットに移動する
aws s3 mv {ファイルパス} s3://{バケット名}/{パス}

# バケットのファイルを削除する
aws s3 rm s3://{バケット名}/{ファイルパス}

# バケットのフォルダを削除する
aws s3 rm s3://{バケット名}/{フォルダパス} --recursive

引用元 : https://bit.ly/44wCXCn

● IAM ユーザーの作成

もしIAMユーザーがない場合はIAM ユーザーの作成をしましょう

AWS コンソールにログインしたら、IAM で検索して移動し、以下のリンクからユーザーを作成します。

直接IAMユーザーを作成する場合は「IAMユーザーを作成します」を選択します

管理者権限を持ったIAMユーザーを作成する場合は以下の例のようにユーザーグループ「AdminUserGroup」を作成します。
(その後、IAMユーザー作成完了後に作成したユーザーに対してユーザーグループを設定します)

管理者権限を持ったIAMユーザーに請求—ボードへのアクセスを許可する場合は次のURLから設定を変更します

https://console.aws.amazon.com/billing/home#/account
( クリック後に画面の下の方までスクロールして、「AM ユーザー/ロールによる請求情報へのアクセス」を探します )

添付ファイル1
IAM-01.png ( 48.6 KBytes ) ダウンロード
添付ファイル2
IAM-01.png ( 25.9 KBytes ) ダウンロード
添付ファイル3
添付ファイル4
添付ファイル5
添付ファイル6
添付ファイル7
No.2334
03/11 09:31

edit

添付ファイル