8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

本記事では、AWS summit 2024にて講演のあった「20分間で分かるIAM全機能」を参考に、AWS CLIの認証にIAMユーザーを用いることの問題点、その代替としてIAM Identity Centerを用いる方法について纏めます。

IAM ユーザーを用いた認証とその問題点

IAMユーザーを用いた認証は、IAMコンソールから取得したIAMユーザー情報を、認証情報として設定することで行われ、その情報は~/.aws/credentialsおよび、~/.aws/configに保存される。
問題点は、IAMユーザーのこれらの情報には有効期限が存在せず、この情報が漏洩するとIAM Userに付与されたポリシーを誰でもいつでもどこからでも利用できてしまう点であり、IAM公式ガイドでも「IAMユーザーの利用は非推奨」と表明されている。

恒常的なCredentialsが常にAWSの外に存在する

参考1(IAMユーザーを用いたAWS CLIの認証設定)
$ aws configure --profile userprod
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json
参考2(公式ドキュメントでもIAMユーザーを使うことは推奨されていない)

IAM Identity Centerを用いたSSO認証によるログイン

IAMユーザーを用いた認証の代わりに、IAM Identity Centerを用いた手法が挙げられる。
IAM Identity Centerを用いた認証は、IAMユーザーによる手法と同様の種類の情報を用いるが、それらの情報は最大12時間で無効となるため、IAMユーザーによる認証よりもセキュリティ的に強固である。
以下では実際にIAM Identity Centerを用いた手法の、セットアップと使用法を示す。

セットアップ

1. 許可セットの作成

管理者アカウントのIAM Identity Centerにて、マルチアカウント設定/許可セットより、IAM ポリシーを設定した許可セットを作成する。
スライド1.png

2. 作成した許可セットの割り当て

作成した許可セットを利用するアカウントに紐づける。
スライド2.png

3. sessionの作成と認証①

AWS access portalより、当該アカウントの利用したい許可セットのAccess keysを選択する。
スライド3.png

4. sessionの作成と認証②

AWS access portalでAccess keysをクリックした際に出てくる情報(下の写真参考)を基に、CLIでのサインインを行う。登録した情報は~/.aws/configに保存される。

$ aws configure sso
SSO session name (Recommended): my-sso
SSO start URL [None]: {SSO start URL}
SSO region [None]: {SSO Region}
SSO registration scopes [None]: sso:account:access

There are 2 AWS accounts available to you.
{使用するアカウントを選択}

Using the account ID XXXXXXXXXXXX
There are 2 roles available to you.
{使用する許可セットを選択}

CLI default client Region [None]: ap-northeast-1
CLI default output format [None]: json
CLI profile name [AWSAdministratorAccess-XXXXXXXXXXXX]: my-sso-name

スライド4.png

使用法

作成した認証でcliコマンドを実行する際は、以下の例ように--profile my-sso-nameをオプションとして記載し利用する。

npx ampx sandbox --profile my-sso-name
aws s3 ls --profile my-sso-name

セッションの有効期限が切れた場合は以下のコマンドで再度サインインする。

$ aws sso login --profile my-sso-name

まとめ

AWS CLIの使用に際して、IAMユーザーを用いることはセキュリティ的にあまりよろしくないのでIAM Identity Centerを用いよう。

参考

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?