🐝
AWS CLIについて
インストール方法
公式ドキュメントからpkgファイルをダウンロード
「macOS ユーザーインターフェイスを使用した AWS CLI バージョン 2 のインストールと更新」を参照
アクセスする
IAMにポリシーをアタッチ、認証情報でアクセスキーの作成を行う
aws configure --profile ユーザー名
を実行、アクセスキー、シークレットアクセスキー、リージョン、出力形式(jsonが一般的)を記述し作成
👉--profile ユーザー名
を指定しないとデフォルトユーザーが作成されるが、基本使わない
👉コマンドが使えるようになる・・・aws help
で確認
JMESPassで便利なコマンドを色々使えるようになる
ディレクトリ構成
/Users/.awsが作成されている
- config・・・AWSCLIコマンドの出力形式とリージョンが書かれている
- credentials・・・IAM権限のアクセスキーについて書かれている
MFA
IAMの認証情報でMFAデバイスを割り当てていることが前提
IAM,RDSについて
IAMのロールを作成、信頼関係の編集でConditionのBoolでMultifactorAuthPresentをtureに
👉MFAデバイスを使用してログインしたユーザーのみがこのIAMロールを使用できる
aws configure --profile ユーザー名
でユーザー追加
configファイルに以下を追記
source_profile = "どのユーザーのcrededentialsを使うのか"
role_arn = "作成したロールのロールARN"
mfa_serial = "IAMのMFAデバイスを割り当てに書かれている文字列"
このユーザーでロールを使用するとMFAの番号を聞かれるように設定完了
S3でよく使うAWS CLIコマンド
異なるサーバー間でならどこでも行える
# バケットの作成
$ aws s3 mb s3://"バケット名"
# ファイルをコピー(s3からローカルへ、ローカルからs3へ)
$ aws s3 cp "コピー元" "コピー先"
# コピー元のディレクトリ以下のファイル、ディレクトリを全てコピー(s3からローカルへ、ローカルからs3へ)
$ aws s3 cp "コピー元" "コピー先" --recursive
# ファイル名変更、ファイル移動
$ aws s3 mv "変更前" "変更後"
# ファイル削除
$ aws s3 rm "削除"
# ディレクトリ以下のファイル全削除
$ aws s3 rm "削除" --recursive
# バケット削除
$ aws s3 rb "削除"
# ディレクトリ直下を同期する(s3からローカルへ、ローカルからs3へ)
# 使用条件:同期元の方が最終更新日付が新しく、ファイルサイズが異なること、もしくは同期先に存在しないファイルがあること
$ aws s3 sync "同期元" "同期先"
# 条件をつけて同期する、条件は"正規表現"(*.txtなど)
#excludeは除外、includeは条件を含むもの
$ aws s3 sync "同期元" "同期先" --exclude "条件" --include "条件"
# 実際には実行されないが、どのファイルが同期されるのかを確認したい場合 --dryrunをつける
$ aws s3 sync "同期元" "同期先" --exclude "条件" --include "条件" --dryrun
# 同期先を同期元と同じファイル構成にするために同期先の不要なファイル(同期元にないファイル)を削除したい場合 --deleteをつける
$ aws s3 sync "同期元" "同期先" --delete
Discussion