PR

SaaSプロジェクトにおけるAWSアカウント作成直後のIAM管理ガイド(手順 & CLIコマンド)

SaaS型プロダクトをAWSで構築するにあたり、アカウント作成直後のIAM(Identity and Access Management)設計はセキュリティ・スケーラビリティ・自動化の基盤となります。本記事では、IAM設計のベストプラクティスと対応するAWS CLIコマンドを実務目線で解説します。


✅ ステップ 1:ルートユーザーの保護(GUI操作)

  • MFA有効化(仮想MFA推奨)
  • アクセスキーの削除(セキュリティ強化)
  • ルートユーザーの運用禁止(緊急時専用)

※ これらはマネジメントコンソールでのみ実施可能。


✅ ステップ 2:IAM管理ユーザーの作成

手順

  1. iam-admin ユーザー作成
  2. AdministratorAccess ポリシー付与
  3. コンソールログイン用パスワード設定
  4. MFA設定(GUIまたは仮想MFA手順)

CLIコマンド

aws iam create-user --user-name iam-admin
aws iam attach-user-policy \
  --user-name iam-admin \
  --policy-arn arn:aws:iam::aws:policy/AdministratorAccess
aws iam create-login-profile \
  --user-name iam-admin \
  --password 'StrongPa$$word123' \
  --password-reset-required

✅ ステップ 3:IAMグループとロール設計

手順

  • グループ例:Admins, Developers, ReadOnly
  • ロール例:LambdaExecutionRole, CI/CD用Role

CLIコマンド

# グループ作成とポリシー付与
aws iam create-group --group-name Developers
aws iam attach-group-policy \
  --group-name Developers \
  --policy-arn arn:aws:iam::aws:policy/PowerUserAccess

# グループにユーザー追加
aws iam add-user-to-group \
  --user-name iam-admin \
  --group-name Developers

# Lambda実行ロール
cat <<EOF > lambda-assume-role.json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": { "Service": "lambda.amazonaws.com" },
      "Action": "sts:AssumeRole"
    }
  ]
}
EOF

aws iam create-role \
  --role-name LambdaExecutionRole \
  --assume-role-policy-document file://lambda-assume-role.json

aws iam attach-role-policy \
  --role-name LambdaExecutionRole \
  --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole

✅ ステップ 4:最小権限のIAMポリシー

手順

  • S3などのサービスに対して限定的なアクセスを付与

CLIコマンド

cat <<EOF > read-s3-specific.json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:GetObject"],
      "Resource": ["arn:aws:s3:::your-bucket-name/*"]
    }
  ]
}
EOF

aws iam create-policy \
  --policy-name ReadS3SpecificBucket \
  --policy-document file://read-s3-specific.json

aws iam attach-user-policy \
  --user-name iam-admin \
  --policy-arn arn:aws:iam::aws:policy/ReadS3SpecificBucket

✅ ステップ 5:監査・可視化の設定

CLIコマンド

# CloudTrailの作成
aws cloudtrail create-trail \
  --name OrganizationTrail \
  --s3-bucket-name your-logging-bucket \
  --is-multi-region-trail

aws cloudtrail start-logging --name OrganizationTrail

# IAM Access Analyzer
aws accessanalyzer create-analyzer \
  --analyzer-name iam-analyzer \
  --type ACCOUNT

✅ ステップ 6:定期的なIAM監査

CLIコマンド例

# IAMユーザー情報の取得
aws iam get-user --user-name iam-admin

# ロール一覧
aws iam list-roles

⚡️ まとめ

IAM設計は「最初に整える」ことで、後々の自動化・セキュリティ監査・組織拡張が容易になります。ご希望に応じて、Terraform/CDK版のコード化テンプレートもご提供可能です。


ご質問・追加リクエストがあれば、コメント欄またはお問い合わせフォームよりお気軽にどうぞ。

コメント

タイトルとURLをコピーしました