IAM
AWS Identity and Access Management (IAM) ノート。
Overview
- Identity and Access Management、グローバルサービス
- 最小 権限 の原則 (Least Privilege Principle)
- ユーザーまたはグループに ポリシー という JSON ドキュメントを割 り当 て

Permissions
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"cloudwatch:ListMetrics",
"cloudwatch:GetMetricStatistics",
"cloudwatch:Describe*"
],
"Resource": "*"
}
]
}Policies
Policies Structure
| 要素 | 説明 |
|---|---|
| Version | ポリシー言語 バージョン |
| Id | オプションのポリシー識別子 |
| Sid | ステートメント ID(オプション、一意 である必要 あり) |
| Effect | Allow または Deny |
| Action | service:verb(例
: s3:GetObject) |
| Resource | Amazon Resource Name (ARN) |
| Principal | ユーザー/リソースベースポリシーの対象 |
| Condition | オプションの条件 |
ARN Format
arn:partition:service:region:account-id:resource-id/path
arn:aws:s3:::com.lex.demo.file/file1partition: 常 に “aws”region: グローバルサービス(例 : S3)では空account-id: 一部 のサービス(例 : S3)では空
Password Policy
- 最小 パスワード長 を設定
- 特定 の文字 タイプを要求 (大文字 、小文字 、数字 、非 英数字 )
- IAM ユーザーが自分 のパスワードを変更 可能 に
- 有効 期限後 のパスワード変更 を要求
- パスワードの再使用 を防止
MFA (Multi-Factor Authentication)
全 ての IAM ユーザー、特 にルートアカウントに強 く推奨 。
Access Keys
AWS へのアクセス方法 :
- AWS Management Console: パスワード + MFA で保護
- AWS CLI: アクセスキーで保護 (AWS SDK for Python で構築 )
- AWS SDK: コードベース、アクセスキーで保護
Roles for Services
ロールにより AWS サービスが代理 でアクションを実行 可能 。

Security Tools
| ツール | レベル | 説明 |
|---|---|---|
| IAM Credentials Report | アカウント | 全 てのユーザーと認証 情報 ステータスを一覧 |
| IAM Access Advisor | ユーザー | 付与 されたサービス権限 と最終 アクセス時間 を表示 |
Best Practices
- ルートアカウントは AWS アカウント設定 以外 で使用 しない
- 1 人 の物理 ユーザー = 1 つの AWS ユーザー
- ユーザーをグループに割 り当 て、グループに権限 を割 り当 て
- MFA を使用
- AWS サービス用 のロールを作成 ・使用
- プログラムアクセス (CLI/SDK) にはアクセスキーを使用
- IAM Credentials Report で権限 を監査
Shared Responsibility Model
AWS
- インフラストラクチャ(グローバルネットワークセキュリティ)
- 設定 と脆弱性 分析
- コンプライアンス検証
You
- ユーザー、グループ、ロール、ポリシーの管理 と監視
- 全 てのアカウントで MFA を有効化
- キーを定期的 にローテーション
- IAM ツールで適切 な権限 を適用
- アクセスパターンを分析 し権限 を確認