はじめに
AWSで新規アカウントを作成した場合、多くの方はAdministratorAccess権限(AWS管理ポリシー)を付与したadminユーザーを作成しているかと思います。
今回はそんな、AWSがデフォルトで用意している代表的なAWS管理ポリシーについて簡単にまとめてみました。
(IAM)ポリシーとは
AWSにおけるポリシーとは、主に IAM (AWS Identity and Access Management)で使われ、
「どの操作を、どのリソースに対して許可/拒否するか」を定義するルールのことです。
「何ができるか」が定義された、「権限そのもの」だと覚えると良さそうです。
後述する(IAM)ロールや、(IAM)ユーザーにアタッチして使用します。
ポリシーはJSON形式で定義されています。(例)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::example-bucket"
}
]
}
| 項目 | 意味 |
|---|---|
| Effect | Allow(許可) or Deny(拒否) |
| Action | 実行できる操作(例:s3:PutObject) |
| Resource | 対象リソース(例:S3バケット) |
| Condition | 条件(IP制限など) |
(IAM)ロールとは
IAMロールは「複数のポリシーをまとめて持つ存在」です。
ポリシーが「権限そのもの」であったのに対し、ロールは「権限の入れ物」だと覚えると良さそうです。
ロールは一時的に引き受ける(AssumeRole)ことが前提で、ユーザーや(AWSの)サービスが利用します。
ロール単体では何もできず、ポリシーをアタッチして初めて権限を持つことができます。
ユーザーには直接ポリシーをアタッチできますが、ロール経由での権限付与がベストプラクティスとされています。
代表的なAWS管理ポリシー
① AdministratorAccess(管理者権限)
特徴:
・すべてのAWSサービス・リソースに対してフルアクセス
・最も危険(誤操作・侵害リスク大)
・本番環境では基本NG
用途:
・初期構築用
・管理者ユーザー
② PowerUserAccess(準管理者)
特徴:
・ほぼ全サービス操作可能
・ただしIAM操作は不可
・IAM変更を防げるため比較的安全
用途:
・開発者・インフラ担当
③ ReadOnlyAccess(閲覧専用)
特徴:
・すべてのサービスで「参照のみ可能」
・変更操作は不可
用途:
・監査・閲覧・サポート
④ その他、各サービスごとのFullAccess / ReadOnlyAccess
・IAMFullAccess / IAMReadOnlyAccess
・AmazonS3FullAccess / AmazonS3ReadOnlyAccess
・AmazonEC2FullAccess / AmazonEC2ReadOnlyAccess
など、各サービスごとにポリシーが用意されています。
「最小権限」のみをロールにアタッチし、引き受ける(Assume)ようにするのが推奨されています。