IAM Identity Center(SSO)を使ってAWS CLIを認証する

AWS

こんにちは、ニキです。

この記事では、AWS IAM Identity Center(SSO)を使ってAWS CLIを認証します。

認証方法にはいくつかの種類がある中で、利便性と安全性のバランスが最も優れているのがAWS IAM Identity Center(SSO)です。

以下の流れで解説します。

  • AWS CLIのインストール
  • プロファイルの設定
  • 認証
  • AWSリソースへのCLIアクセス
  • セッション切れ後の再ログイン

SSOユーザーは作成済みの前提です。以下の記事で作成方法を解説しています。

ちなみに以下が認証情報の一覧です。上から推奨順に並んでいます。

下から2番目の方法を紹介している記事が多い印象ですが、場合によってはセキュリティリスクが問題になります。

AWS サービスを使用して開発するときは、AWS CLI が AWS との間でどのように認証するかを確立する必要があります。AWS CLI にプログラムでアクセスするための認証情報を設定するには、次のいずれかのオプションを選択します。オプションは推奨順になっています。

https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-authentication.html
Takaharu Niki

・Webエンジニア5年目。
・バックエンドを中心に、フロントエンドやDevOps業務も経験。
・現在は、自社サービス企業のテックリードとして従事。

Takaharu Nikiをフォローする

AWS IAM Identity Center(SSO)でAWS CLIを認証

awsコマンドをインストールしていない場合は、インストールします。

% brew install awscli

以下のように表示されればインストール成功です。

% aws --version
aws-cli/2.13.22 Python/3.11.5 Darwin/22.3.0 source/x86_64 prompt/off

AWSのポータル画面へ移動し、SSO情報を取得します。

認証します。以下に先ほど取得した値を入力します。

  • SSO start URL
  • SSO region
% aws configure sso
SSO session name (Recommended):
WARNING: Configuring using legacy format (e.g. without an SSO session).
Consider re-running "configure sso" command and providing a session name.
SSO start URL [None]: https://***********.awsapps.com/start#
SSO region [None]: ap-northeast-1
Attempting to automatically open the SSO authorization page in your default browser.
If the browser does not open or you wish to use a different device to authorize this request, open the following URL:

https://device.sso.ap-northeast-1.amazonaws.com/

Then enter the code:

TBVF-MXTG

ブラウザが開きますので、Confirm and continueを選択します。

Allow を選択します。

以下のように表示されれば成功です。

それぞれ入力して、プロファイルを設定します。

  • CLI default client Region
  • CLI default output format
The only AWS account available to you is: ************
Using the account ID **********
The only role available to you is: AdministratorAccess
Using the role name "AdministratorAccess"
CLI default client Region [None]: ap-northeast-1
CLI default output format [None]: json
CLI profile name [AdministratorAccess]:

To use this profile, specify the profile name using --profile, as shown:

aws s3 ls --profile AdministratorAccess

以下のようにAWSリソースへアクセスできます。

% aws s3 ls --profile AdministratorAccess

セッション切れ後にAWS IAM Identity Center(SSO)でAWS CLIを再度認証

プロファイルに関連付けられたSSOセッションが期限切れになった場合、以下のようなエラーが出ます。

% aws s3 ls --profile AdministratorAccess

The SSO session associated with this profile has expired or is otherwise invalid. To refresh this SSO session run aws sso login with the corresponding profile.

SSOログインをして、SSOセッションをリフレッシュします。

% aws sso login --profile AdministratorAccess
Attempting to automatically open the SSO authorization page in your default browser.
If the browser does not open or you wish to use a different device to authorize this request, open the following URL:

https://device.sso.ap-northeast-1.amazonaws.com/

Then enter the code:

WVJH-TJDW

認証の流れは先ほどと同じです。

以下のようなメッセージが表示されればログイン成功です。

Successfully logged into Start URL: https://************.awsapps.com/start#

以下のコマンドでエラーが出なくなっていることを確認できます。

% aws s3 ls --profile AdministratorAccess

まとめ

この記事では、AWS IAM Identity Center(SSO)を使ってAWS CLIを認証する方法を解説しました。

効率的に学習するならプログラミングスクールの検討もありです。

PRUMエンジニア留学


PRUMエンジニア留学は、実践的なオンラインプログラミングスクールで、未経験者でもエンジニア転職や副業を目指せます。カリキュラムは実務レベルのチーム開発を含み、基礎から応用までを学べます。個別メンタリングや進捗可視化で学習をサポートし、エンジニアとしての実務経験とコミュニケーションスキルも身に付けられます。

Takaharu Niki

・Webエンジニア5年目。
・バックエンドを中心に、フロントエンドやDevOps業務も経験。
・現在は、自社サービス企業のテックリードとして従事。

Takaharu Nikiをフォローする
AWS
Takaharu Nikiをフォローする
アントレプログラマー
タイトルとURLをコピーしました