AWS 認証・設定についての整理

1. 認証方式の全体像

AWSへのアクセス方法
  │
  ├── IAMユーザー
  │     ├── コンソールログイン(パスワード)
  │     └── アクセスキー(Access Key ID + Secret Access Key)
  │
  ├── IAM Identity Center(旧 AWS SSO)
  │     ├── 外部IdP(Okta, Azure AD 等)と連携
  │     └── 一時クレデンシャルを発行
  │
  └── IAMロール(システム用)
        └── EC2, Lambda, ECS 等のAWSサービスが使用

2. IAM(Identity and Access Management)

概要

  • AWSリソースへのアクセス権限を管理するサービス
  • 人間システムの両方の認証・認可を担う

IAMユーザー

  • AWSアカウント内に作成するユーザー
  • 2種類の認証情報を持てる
認証情報用途
パスワードブラウザでAWSコンソールにログイン
アクセスキーCLIやSDKでAWSを操作

IAMロール

  • 人間ではなくシステム(EC2, Lambda等)に付与する権限
  • IAM Identity Center では代替不可
  • EC2インスタンスプロファイル、Lambdaロール等として使用

IAMポリシー

  • ユーザー・ロールに付与する権限の定義
  • 例: AdministratorAccess(全権限)、ReadOnlyAccess(読み取り専用)

3. IAM Identity Center(旧 AWS SSO)

概要

  • 人間のアクセスを一元管理するサービス
  • 複数のAWSアカウントに1つのIDでアクセス可能

IAMユーザーとの比較

IAMユーザーIAM Identity Center
ユーザー管理AWS内で管理外部IdPとの連携も可能
認証情報パスワード・アクセスキー外部IdPのID/パスワード
クレデンシャル長期(無期限)短期(一時的)
複数アカウントアカウントごとにユーザー作成が必要1つのIDで複数アカウント
セキュリティリスクアクセスキー漏洩のリスク低い
用途個人・小規模企業・複数アカウント環境

許可セット(Permission Set)

  • IAM Identity Center における権限の単位
  • AdministratorAccess 等のAWSマネージドポリシーを割り当て可能

aws sso login の設定例

# ~/.aws/config

[sso-session my-sso]

sso_start_url = https://my-company.awsapps.com/start sso_region = ap-northeast-1 sso_registration_scopes = sso:account:access

[profile dev]

sso_session = my-sso sso_account_id = 111111111111 sso_role_name = AdministratorAccess region = ap-northeast-1 output = json

# ログイン
aws sso login --sso-session my-sso

# ログアウト
aws sso logout

4. アクセスキー(Access Key ID / Secret Access Key)

概要

  • IAMユーザーに紐づくCLI・SDK用の認証情報
  • コンソールログインとは独立している

作成手順

AWSコンソール
  → 右上のアカウント名
  → セキュリティ認証情報
  → アクセスキー → アクセスキーを作成
  → ⚠️ Secret Access Key は作成時のみ表示(CSVで保存推奨)

設定方法

ウィザードで設定(推奨)

aws configure --profile dev
# → Access Key ID, Secret Access Key, region, output を入力

ファイルに直接記述

# ~/.aws/credentials

[dev]

aws_access_key_id = AKIAIOSFODNN7EXAMPLE aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCY

注意点

注意点内容
Secret は作成時のみ表示必ずCSVで保存
Gitにコミットしない.gitignore~/.aws を追加
定期的にローテーション90日ごとの更新推奨
1ユーザーに最大2つまでローテーション時に活用

5. ~/.aws/config の記述方法

基本構造

# デフォルトプロファイル

[default]

region = ap-northeast-1 output = json # 名前付きプロファイル

[profile dev]

region = ap-northeast-1 output = json

[profile prod]

region = us-east-1 output = json

主な設定項目

項目説明
regionデフォルトリージョンap-northeast-1
output出力形式json / text / table / yaml
role_arnAssumeRoleのARNarn:aws:iam::...
source_profile元プロファイルdefault
sso_sessionSSOセッション名my-sso

AssumeRoleの設定例

[profile base]
region = ap-northeast-1

[profile dev]

role_arn = arn:aws:iam::111111111111:role/DevRole source_profile = base region = ap-northeast-1

[profile prod]

role_arn = arn:aws:iam::222222222222:role/ProdRole source_profile = base region = ap-northeast-1


6. aws configure コマンド

概要

  • アクセスキーをインタラクティブに設定するコマンド
  • ~/.aws/credentials~/.aws/config に保存される

使い方

# デフォルトプロファイルの設定
aws configure

# 名前付きプロファイルの設定
aws configure --profile dev

# 入力項目
# AWS Access Key ID:     AKIAIOSFODNN7EXAMPLE
# AWS Secret Access Key: xxxxxxxxxxxxxxxx
# Default region name:   ap-northeast-1
# Default output format: json

7. aws login コマンド

概要

  • AWS CLI v2 の正式コマンド
  • AWSコンソールのセッションを流用してCLI認証する
  • アクセスキー不要でローカル開発に利用可能

特徴

項目内容
認証方法ブラウザでAWSコンソールにサインイン
一時クレデンシャル有効期限約1時間(自動リフレッシュ)
リフレッシュトークン有効期限約8時間(コンソールセッションに依存)
設定ファイルregion のみでOK

使い方

# 基本(ブラウザが自動で開く)
aws login --profile dev

# リモート環境(ブラウザが開けない場合)
aws login --profile dev --remote

再ログインが必要なケース

  • AWSコンソールから手動でサインアウトした
  • コンソールセッションがタイムアウトした
  • リフレッシュトークンが期限切れ(約8時間)
  • PCを再起動してキャッシュが消えた場合

8. 認証方法の比較まとめ

認証方法ブラウザキー管理有効期限用途
aws login✅ 必要不要約8時間ローカル開発
アクセスキー不要✅ 必要無期限汎用・自動化
aws sso login✅ 必要不要一時的企業SSO環境
環境変数不要✅ 必要無期限CI/CD
IAMロール不要不要自動更新AWSサービス間

9. 規模別おすすめ構成

状況おすすめ
個人・単一アカウントaws login またはアクセスキー
複数アカウントを頻繁に切り替えるAssumeRole
企業・複数アカウント・複数人IAM Identity Center
CI/CD・自動化アクセスキー または 環境変数
EC2/Lambda等のAWSサービスIAMロール

No responses yet

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です