ユーザーが Amazon RDS DB インスタンスの作成、削除、変更、バックアップ、復旧を実行するために必要な最小権限はどれですか?

最終更新日: 2019 年 12 月 30 日

AWS Identity and Access Management (IAM) ユーザーに対して、Amazon Relational Database Service (Amazon RDS) DB インスタンスへのアクセスを制限したいと考えています。Amazon RDS DB インスタンスに対して特定のアクションを実行するために必要な最小限の権限を IAM ユーザーに付与するにはどうすればよいですか?

解決方法

1.    IAM コンソールを開き、ナビゲーションペインからユーザーを選択します。

2.    ユーザーを追加を選択し、ユーザー名を入力します。

3.    アクセスタイプで、AWS マネジメントコンソールのアクセスを選択し、Amazon RDS コンソールを使用するためのパスワードを作成します。AWS コマンドラインインターフェイス (AWS CLI) へのアクセスを提供するには、プログラムによるアクセスを選択します。

重要: プログラムによるアクセスでは、Download.csv を選択してアクセスキー ID とシークレットアクセスキーをダウンロードしてください。後でセキュリティトークンを作成するには、キーが必要です。

4.    権限とタグを確認し、ユーザーを作成を選択します。これにより、IAMUserChangePassword ポリシーを使用する IAM ユーザーが作成されます。

5.    Amazon RDS で実行するアクションの IAM ポリシーを作成します。

6.    IAM コンソールに戻り、ナビゲーションペインからユーザーを選択します。

7.    作成した IAM ユーザーを選択します。

8.    権限タブから、インラインポリシーを追加を選択します。

9.    JSON タブを選択し、ユースケースに基づいて次のポリシーを 1 つ以上入力します。

注意: 以下のポリシーは、指定されたアクションを実行するために必要な最小限の権限を提供します。この権限がポリシーに存在しないため、Amazon RDS コンソールでエラー (IAMUser は実行する権限がありません: rds:アクションなど) が表示されることがあります。ほとんどの場合、このエラーは説明アクションで発生します。エラーは想定されています。これらのアクションを実行できるかどうかには影響しません。このエラーを回避するには、次の IAM ポリシーの例を変更するか、AWS CLI を使用してアクションを実行できます。

RDS DB インスタンスの作成と削除

次のポリシーでは、ユーザーが暗号化を有効にせずに RDS DB インスタンスを作成できるように許可します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVpcAttribute",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeInternetGateways",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeVpcs",
                "ec2:DescribeAccountAttributes",
                "ec2:DescribeSubnets",
                "rds:Describe*",
                "rds:ListTagsForResource",
                "rds:CreateDBInstance",
                "rds:CreateDBSubnetGroup"
            ],
            "Resource": "*"
        }
    ]
}

次のポリシーでは、ユーザーが暗号化を有効にして RDS DB インスタンスを作成できるように許可します。

{
        "Version": "2012-10-17",
        "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVpcAttribute",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeInternetGateways",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeVpcs",
                "ec2:DescribeAccountAttributes",
                "ec2:DescribeSubnets",
                "rds:Describe*",
                "rds:ListTagsForResource",
                "rds:CreateDBInstance",
                "rds:CreateDBSubnetGroup",
                "kms:ListAliases"
                ],
            "Resource": "*"
        }
    ]
}

次のポリシーでは、ユーザーが RDS DB インスタンスを削除できるように許可します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "rds:DeleteDBInstance",
                "rds:DescribeDBInstances"
            ],
            "Resource": "*"
        }
    ]
}

次のポリシーでは、ユーザーが RDS DB インスタンスを作成および削除できるように許可します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVpcAttribute",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeInternetGateways",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeVpcs",
                "ec2:DescribeAccountAttributes",
                "ec2:DescribeSubnets",
                "rds:Describe*",
                "rds:ListTagsForResource",
                "rds:CreateDBInstance",
                "rds:CreateDBSubnetGroup",
                "rds:DeleteDBInstance"
            ],
            "Resource": "*"
        }
    ]
}

RDS DB インスタンスの停止と起動

次のポリシーでは、ユーザーが RDS DB インスタンスを停止および起動できるように許可します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "rds:StopDBInstance",
                "rds:StartDBInstance",
                "rds:Describe*"
            ],
            "Resource": "*"
        }
    ]
}

バックアップと復元の実行 (DB スナップショットの作成、DB スナップショットからの DB インスタンスの復元、特定の時点への復元)

次のポリシーでは、ユーザーが DB スナップショットを作成できるように許可します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "rds:Describe*",
                "rds:CreateDBSnapshot"
            ],
            "Resource": "*"
        }
    ]
}

次のポリシーでは、ユーザーが DB スナップショットを使用して RDS DB インスタンスを復元できるように許可します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:*",
                "rds:Describe*",
                "rds:RestoreDBInstanceFromDBSnapshot"
            ],
            "Resource": "*"
        }
    ]
}

次のポリシーでは、ユーザーが特定時点への復元を実行できるように許可します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "rds:Describe*",
                "rds:RestoreDBInstanceToPointInTime"
            ],
            "Resource": "*"
        }
    ]
}

RDS DB インスタンスの変更

次のポリシーでは、ユーザーが DB インスタンスクラスのタイプ、割り当てられたストレージ、ストレージタイプ、インスタンスバージョンを変更できるように許可します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "rds:Describe*",
                "rds:ModifyDBInstance"
            ],
            "Resource": "*"
        }
    ]
}

拡張モニタリングと Performance Insights の有効化

次のポリシーでは、ユーザーが拡張モニタリングを有効にするように許可します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:ListRoles",
                "iam:PassRole",
                "rds:ModifyDBInstance",
                "rds:Describe*",
                "ec2:Describe*"
            ],
            "Resource": "*"
        }
    ]
}

次のポリシーでは、ユーザーが Performance Insights を有効にするように許可します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "rds:Describe*",
                "pi:*"
            ],
            "Resource": "*"
        }
    ]
}

DB パラメータグループと DB オプショングループの作成、変更、削除

次のポリシーでは、ユーザーが DB パラメータグループとオプショングループを作成、変更、削除できるように許可します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "rds:Describe*",
                "rds:CreateDBParameterGroup",
                "rds:ModifyDBParameterGroup",
                "rds:DeleteDBParameterGroup",
                "rds:CreateOptionGroup",
                "rds:ModifyOptionGroup",
                "rds:DeleteOptionGroup"
            ],
            "Resource": "*"
        }
    ]
}

Amazon RDS コンソールからの Amazon CloudWatch メトリックの表示

次のポリシーでは、ユーザーが Amazon RDS コンソールから CloudWatch メトリックを表示できるように許可します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "rds:Describe*",
                "cloudwatch:GetMetricData",
                "cloudwatch:GetMetricStatistics"
            ],
            "Resource": "*"
        }
    ]
}

10.    ポリシーを確認を選択します。

11.    ポリシーの名前を入力し、ポリシーを作成をクリックします。