0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS IAMポリシーのよくあるユースケース10選とおまけポリシー

Last updated at Posted at 2024-09-27

はじめに

AWS IAM(Identity and Access Management)は、AWSリソースに対するアクセス制御を行うための強力なツールです。

この記事では、さまざまなシーンで活用できるIAMポリシーの具体例を10個紹介します。

これらのポリシーは、特定のタスクに対して必要な権限だけを付与し、セキュリティを維持しつつ効率的に運用できるようカスタマイズ可能です。

また、前回の記事ではIAMポリシーの設定方法について詳しく解説しているので、そちらもぜひ参考にしてください。

知識整理

以下に、必要な必要な知識を整理します。

IAMとは

IAM(Identity and Access Management)は、AWSのサービスで、ユーザーやグループのアクセス権限を管理するための機能です。

IAMを使用することで、誰がAWSリソースにアクセスできるか、またそのユーザーがどの操作を行えるかを細かく制御することができます。

IAMポリシーとは

IAMポリシーは、JSON形式で書かれたドキュメントで、特定のアクションを許可または拒否するためのルールを定義します。

スクリーンショット 2024-09-27 7.16.44.png
引用画像:https://iselegant.hatenablog.com/entry/2020/05/24/215808

ポリシーはユーザー、グループ、ロールにアタッチして使用され、AWSリソースへのアクセス制御を実現します。

AWS IAMポリシーのユースケース10選

1. S3バケットへの読み取り専用アクセス

このポリシーは、特定のS3バケット内のデータを読み取るのみ許可するものです。書き込みや削除は許可されません。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::example-bucket/*"
        }
    ]
}

2. EC2のスタートとストップを許可するポリシー

このポリシーは、EC2インスタンスを起動・停止する権限のみを付与します。インスタンスの作成や削除は許可されません。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": "arn:aws:ec2:region:account-id:instance/*"
        }
    ]
}

3. Lambda関数のデプロイ権限

このポリシーは、Lambda関数のデプロイや更新を許可し、その他の操作は制限します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "lambda:UpdateFunctionCode",
                "lambda:CreateFunction"
            ],
            "Resource": "arn:aws:lambda:region:account-id:function:*"
        }
    ]
}

4. RDSインスタンスのスナップショット作成と取得

このポリシーは、RDSインスタンスのスナップショットを作成し、既存のスナップショットにアクセスする権限を与えます。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "rds:CreateDBSnapshot",
                "rds:DescribeDBSnapshots"
            ],
            "Resource": "arn:aws:rds:region:account-id:snapshot:*"
        }
    ]
}

5. CloudWatchログのアクセス権限

このポリシーは、CloudWatchロググループへのアクセスを許可し、ログを閲覧できるようにします。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups",
                "logs:GetLogEvents"
            ],
            "Resource": "arn:aws:logs:region:account-id:log-group:*"
        }
    ]
}

6. IAMユーザーの自己パスワード変更権限

このポリシーは、IAMユーザーが自分のパスワードを変更する権限を与えるものです。他のユーザーやリソースへのアクセスは制限されています。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:ChangePassword",
            "Resource": "arn:aws:iam::account-id:user/${aws:username}"
        }
    ]
}

7. DynamoDBテーブルへの読み書きアクセス

このポリシーは、特定のDynamoDBテーブルに対する読み取りおよび書き込みアクセスを許可します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:GetItem",
                "dynamodb:PutItem",
                "dynamodb:UpdateItem"
            ],
            "Resource": "arn:aws:dynamodb:region:account-id:table/example-table"
        }
    ]
}

8. Elastic Load Balancerの管理権限

このポリシーは、ELBの作成、削除、設定変更を許可します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "elasticloadbalancing:CreateLoadBalancer",
                "elasticloadbalancing:DeleteLoadBalancer",
                "elasticloadbalancing:DescribeLoadBalancers"
            ],
            "Resource": "*"
        }
    ]
}

9. S3バケットに対する全アクセス許可

このポリシーは、S3バケットに対して完全な読み取り・書き込みアクセスを許可します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": "arn:aws:s3:::example-bucket/*"
        }
    ]
}

10. IAMユーザーの作成・管理権限

このポリシーは、IAMユーザーの作成、更新、削除を行う権限を付与します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:CreateUser",
                "iam:DeleteUser",
                "iam:UpdateUser"
            ],
            "Resource": "arn:aws:iam::account-id:user/*"
        }
    ]
}

まとめ

これらのIAMポリシーは、AWSリソースに対して厳格なアクセス制御を行うために使用されます。

ポリシーは常に「最小権限の原則」に基づいて設計し、必要な操作だけを許可するようにしましょう。また、定期的にポリシーを見直し、変更や改善が必要な場合はすぐに対応することが大切です。

AWS IAMポリシーをうまく活用することで、安全かつ効率的にAWS環境を管理することが可能です。

おまけ

面白いAWS IAMポリシーとして、「午前中だけEC2インスタンスをスタートできるポリシー」を作成してみます。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:StartInstances",
            "Resource": "arn:aws:ec2:region:account-id:instance/*",
            "Condition": {
                "DateGreaterThanEquals": {
                    "aws:CurrentTime": "2024-09-27T09:00:00Z"
                },
                "DateLessThanEquals": {
                    "aws:CurrentTime": "2024-09-27T12:00:00Z"
                }
            }
        },
        {
            "Effect": "Deny",
            "Action": "ec2:StartInstances",
            "Resource": "arn:aws:ec2:region:account-id:instance/*",
            "Condition": {
                "DateGreaterThan": {
                    "aws:CurrentTime": "2024-09-27T12:00:00Z"
                }
            }
        }
    ]
}

このポリシーを使えば、例えばチームメンバーに「午前中に集中して作業してもらいたい」など、ユニークな管理が可能です!笑

参考記事

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?