AWS CLIのインストールと認証情報のセットアップ
概要
ECR利用のためにAWS CLIのインストールと認証情報の設定を行う。
AWS CLIはコマンドでAWSの操作を行えるツール。AWSはブラウザ側でも色々設定することができるが、
それとコマンドを繋ぎ込むのが認証情報の設定。
AWS CLIをインストール
以下に従ってAWS CLIを入れる。
ファイルをダウンロード
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /
macOS installerを実行
sudo installer -pkg ./AWSCLIV2.pkg -target /
実行確認と後始末
which aws
aws --version
rm AWSCLIV2.pkg
IAM Identity Center経由のアクセスを確立する
以下に従ってIAM Identity Center経由でAWSにログインするプロファイルを設定する
ステップ1: IAM Identity Center を有効化する
以下画面で組織を作成する。
以下画面で「有効にする」をクリックする。
ステップ 2: ID ソースを選択する
デフォルト設定のままなのでスキップ
ステップ 3: 管理者アクセス許可セットを作成する
以下に従って設定する。日本語が怪しい。
許可セットを作成する
「事前定義された許可セット」, 「Administrator Access」を選択し次へ
許可セットの詳細はデフォルト設定のまま次へ
できた
ステップ 4: AWS アカウント 管理ユーザーのアクセスを設定する
管理者アカウントを作成済みのためスキップ
ステップ 5: AWS 管理者の認証情報を使用してアクセスポータルにサインインする
別ブラウザからログインできた。
ステップ 6: 最小特権のアクセス許可を適用するアクセス許可セットを作成する
管理者アカウントで運用するためスキップ
AWS CLIの設定
以下に従ってAWS CLIの設定を行う。
AWS CLI の認証情報の設定
AWS IAM Identity Center の自動認証更新によるトークンプロバイダーの設定を行う。
以下に従って操作を行う。
aws configure sso ウィザードでプロファイルを設定する
以下コマンドでAWS IAM Identity Center のSTART URL, リージョンを指定する。session nameは適当でいい。
$ aws configure sso
SSO session name (Recommended): aichatbot-sso
SSO start URL [None]: https://XXXXXXXXXXXXX.awsapps.com/start
SSO region [None]: ap-southeast-2
SSO registration scopes [None]: sso:account:access
ブラウザが開きAWSコンソールログインを求めてくる。
先ほど作ったユーザでログインすると以下の表示が出て連携が成功する。
コマンド上では処理が続く。1つしかAWSアカウントがない場合は自動でアカウント選択がされる
The only AWS account available to you is: xxxxxxxxxxxxxxx
Using the account ID xxxxxxxxxxxxxxx
The only role available to you is: AdministratorAccess
Using the role name "AdministratorAccess"
その後、再びリージョンなどを入力する。
CLI default client Region [None]: ap-southeast-2
CLI default output format [None]: json
CLI profile name [AdministratorAccess-xxxxxxxxxxxxxxx]:
全て入力するとプロファイルが作成される。
To use this profile, specify the profile name using --profile, as shown:
aws s3 ls --profile AdministratorAccess-xxxxxxxxxxxxxxx
プロファイルを確認する
cat ~/.aws/config
[profile AdministratorAccess-xxxxxxxxxxxxxxx]
sso_session = aichatbot-sso
sso_account_id = xxxxxxxxxxxxxxx
sso_role_name = AdministratorAccess
region = ap-southeast-2
output = json
[sso-session aichatbot-sso]
sso_start_url = https://XXXXXXXXXXXXX.awsapps.com/start
sso_region = ap-southeast-2
sso_registration_scopes = sso:account:access
完了。これでaws ecr-public get-login-password
とかができるはず。
→ できた。
Discussion