0
0

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 CLI設定ファイルを完全解説:「正社員」と「嘱託社員」のID管理

Posted at

AWSをコマンドラインから操作するためのツール、AWS CLI。その裏側では、~/.awsディレクトリにある設定ファイルが、あなたが誰としてAWSにアクセスするかを管理しています。

この記事では、credentialsconfigという2つの中心的なファイルが、どのようにして「正社員(IAMユーザー)」と「嘱託社員(IAM Identity Center経由のSSO)」という異なる身分を管理しているのかを、「会社」の例えを使って解説します。


~/.aws/credentials:「正社員」のIDカード保管庫

このファイルは、永続的な認証情報、つまり有効期限のない「アクセスキー」を保管する場所です。これは、AWSアカウントという会社に籍を置く**「正社員(IAMユーザー)」**のIDカードにあたります。

# ~/.aws/credentials

[default]
aws_access_key_id = AKIA...
aws_secret_access_key = ...

[another-project-user]
aws_access_key_id = AKIA...
aws_secret_access_key = ...
  • [プロファイル名]: defaultanother-project-userといった各ブロックが、一人の「正社員」を定義します。
  • aws_access_key_id / aws_secret_access_key: これがIDカードそのものです。CLIはこのキーを使って、AWSに直接認証をリクエストします。

~/.aws/config:「嘱託社員」の業務マニュアル

このファイルは、より複雑な設定や、**「嘱託社員(SSO)」**としての働き方を定義する場所です。SSOの設定は、大きく2つのブロックに分かれています。

1. [sso-session] ブロック:総合受付の情報 🏢

このブロックは、認証を行う「総合受付」、つまりIAM Identity Centerのポータルがどこにあるかを定義します。

# ~/.aws/config

[sso-session my-sso-session]
sso_start_url = [https://d-xxxxxxxxxx.awsapps.com/start/](https://d-xxxxxxxxxx.awsapps.com/start/)
sso_region = ap-northeast-1
  • sso_start_url: 認証のためにアクセスすべきポータルの住所です。
  • ポイント: このsso-sessionブロックは、複数のプロファイルで使い回すことができます。総合受付は一つで良いからです。

2. [profile] ブロック:具体的な業務指示書 👨‍🏫

このブロックは、一人の「嘱託社員」が、どの会社で、どの役職で働くかを定義する具体的な指示書です。

# ~/.aws/config

[profile my-sso-profile]
sso_session = my-sso-session
sso_account_id = 123456789012
sso_role_name = MyAdminRole
region = ap-northeast-1
  • sso_session: どの「総合受付」で認証を受けるかを指定し、上記のsso-sessionブロックと紐付けます。
  • sso_account_id: 働くべき「会社」のIDです。
  • sso_role_name: その会社で借りるべき「役職」の名前です。

SSO認証の仕組み:CLIとブラウザの華麗な連携 ✨

configファイルにはパスワードがありません。では、どうやって認証するのでしょうか?

答えは 「ブラウザとの連携」 です。

  1. SSOプロファイルでコマンド (aws s3 ls --profile my-sso-profile) を実行します。
  2. 有効な認証キャッシュがなければ、CLIは自動的にブラウザを起動します。
    この時、単にエラーが出るだけでブラウザが起動しない場合は↓のコマンドを実行
    aws sso login --profile my-sso-profile
    
  3. あなたはブラウザ上で、見慣れたログイン画面で安全にユーザー名とパスワードを入力します。
  4. 認証成功後、AWSから発行された一時的な認証情報が安全にCLIへ渡されます。
  5. CLIはその情報をキャッシュ (~/.aws/sso/cache) し、コマンドを実行します。

この仕組みにより、パスワードのような重要な情報をファイルに保存することなく、安全に認証を行えます。

まとめ:一度の認証で、複数の仕事をこなす

SSO設定の最大の利点は、一度の認証でセッション全体が有効になることです。

aws sso login --profile my-sso-profile を一度実行すれば、同じ sso-session を使っている他のプロファイル(例えば、別の会社・役職が定義された[profile another-sso-job])も、再度ログインすることなく利用可能になります。

総合受付で一度本人確認を済ませれば、その日一日、許可された全ての部署に自由に出入りできるのと同じです。この「正社員」と「嘱託社員」の働き方の違いを理解すれば、あなたのAWS CLIライフはより快適で安全なものになるでしょう。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?