前提知識
AWSにおいてユーザーとアカウントは異なります。一つのアカウント内に一つまたは複数のユーザーが存在します。つまり、一つのアカウントに利用者は複数いる場合があります。本記事でのポイントは複数アカウントはOrganization、ユーザーはIAMで管理することです。
IAM
AWS IAM(Identity and Access Management)はAWSのユーザーとグループを作成および管理して、アクセス権限を付与して AWSリソースへのアクセスを許可および拒否できます。
IAMポリシー
AWSのサービスとリソースへのアクセス許可を付与または拒否するドキュメントアクセス許可のルールを定義(リソースへのアクセス許可を管理)どのアクションをどのリソースで実行できるかを指定するルールセットです。
IAMユーザー
許可されたサービスだけにアクセスでき、アクセスキーIDとシークレットアクセスキーを関連付けます。
IAMグループ
IAMユーザーの集合を管理でき、アクセス権限を複数のユーザーに一括で付与します。
IAMロール
有効期限のある一時的な認証情報アイデンティティです。AWS リソースに他のリソースへのアクセス権限を付与することができます。
IAMのベストプラクティス
- 最小権限の原則 (Principle of Least Privilege)
ユーザー、グループ、およびロールには、その業務を遂行するために必要な最低限の権限のみを付与します。 - IAM ロールの使用
アプリケーションやサービスが AWS リソースにアクセスする必要がある場合は、IAM ユーザーよりも IAM ロールを使用します。 - 多要素認証 (MFA) の有効化
特に高権限のユーザーや重要なアカウントには MFA を有効にし、セキュリティを強化します。 - IAM ポリシーの定期的なレビューと更新
IAM ポリシーとアクセス権限を定期的に見直し、不要な権限を削除し、必要に応じて更新します。 - アカウントの分離
環境や目的ごとに AWS アカウントを分離し、異なるアカウントで異なる役割やリソースを管理します。 - 定義されたパスワードポリシーの使用
IAM ユーザーのパスワードに対して強力なパスワードポリシーを設定し、セキュリティを強化します。パスワードの最低文字数、パスワードの有効期限、複雑性要件(大文字、小文字、数字、特殊文字の組み合わせ)を設定します。 - アクセスキーの管理
アクセスキーは必要な場合にのみ作成し、定期的にローテーションします。使用されていないアクセスキーは無効にします。 - ルートユーザーの使用を最小限に抑える
ルートユーザーは AWS アカウントの作成時にのみ使用し、日常の管理作業には専用の IAM ユーザーを使用します。ルートユーザーの認証情報は安全な場所に保管し、必要なとき以外は使用しません。 - 権限境界 (Permissions Boundary) の使用
IAM エンティティ(ユーザーやロール)が持つ最大の権限を制御するために、権限境界を設定します。 - AWS CloudTrailの有効化
概要: AWS CloudTrailを有効にして、AWS アカウント内でのすべての API コールを記録し、監査やコンプライアンスのためにログを保存します。CloudTrail ログを定期的に確認し、不正なアクティビティがないかを監視します。 - タグの使用
ユーザーやロールにタグを追加して管理しやすくします。これにより、リソースの管理や監査が容易になります。
AWS Organization
複数のAWSアカウントを一元的に統合および管理、複数のアカウントについての請求を1つにまとめます。
AWS Control Tower
事前設定された安全なAWS環境であるランディングゾーンを設定するサービスです。多数のアカウントを保有しているマルチアカウントのAWS環境において、各アカウントのセキュリティ設定の統制を可能にします。
参考文献
https://aws.amazon.com/jp/iam/
https://aws.amazon.com/jp/organizations/
https://aws.amazon.com/jp/controltower/