スキップしてコンテンツを表示

ユーザーが Amazon RDS DB インスタンスで作成、削除、変更、バックアップ、回復を実行するために、必要な最小特権を教えてください。

所要時間3分
0

AWS Identity and Access Management (IAM) ユーザーに対し、Amazon Relational Database Service (Amazon RDS) DB インスタンスの管理に必要最小限のアクセス許可を付与したいです。

解決策

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

RDS DB インスタンスへの IAM ユーザーアクセスを設定するには、次の手順を実行します。

  1. IAM コンソールを開きます。
  2. ナビゲーションペインで [ユーザー] を選択します。
  3. [ユーザーを追加] を選択し、[ユーザー名] を入力します。
  4. [アクセスタイプ][AWS マネジメントコンソール] アクセスを選択し、Amazon RDS コンソールを使用するためのパスワードを作成します。AWS CLI へのアクセスを許可するには、[プログラムによるアクセス] を選択します。
    重要: [プログラムによるアクセス]Download.csv を選択し、アクセスキー ID とシークレットアクセスキーをダウンロードします。キーは後でセキュリティトークンを作成する際に必要になります。
  5. アクセス許可とタグを確認し、[ユーザーを作成] を選択します。
    注: 完了すると、IAMUserChangePassword ポリシーを持つ IAM ユーザーが作成されます。
  6. Amazon RDS で実行するアクション用の IAM ポリシーを作成します。
  7. IAM ポリシーをユーザーに追加します

IAM ポリシーの例

次のサンプルポリシーは、指定されたアクションを実行するのに必要な最小特権を付与します。必要なアクセス許可がポリシーに含まれていないため、Amazon RDS コンソールにエラーが表示される場合があります。IAMUser is not authorized to perform: rds:Action などのエラーメッセージが表示される場合があります。

Describe アクションではエラーが発生する可能性がありますが、エラーはそのアクションの実行には影響しません。エラーを回避するには、次の IAM ポリシーの例を変更するか、AWS CLI を使用してアクションを実行します。

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

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

{  
  "Version": "2012-10-17",
  "Statement": [
    {
      "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": [
    {
      "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": [
    {
      "Effect": "Allow",
      "Action": [
        "rds:DeleteDBInstance",
        "rds:DescribeDBInstances"
      ],
      "Resource": "*"
    }
  ]
}

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

{  
  "Version": "2012-10-17",
  "Statement": [
    {
      "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": [
    {
      "Effect": "Allow",
      "Action": [
        "rds:StopDBInstance",
        "rds:StartDBInstance",
        "rds:Describe*"
      ],
      "Resource": "*"
    }
  ]
}

バックアップとリカバリの実行

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

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

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

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

ユーザーがポイントインタイムリカバリを実行できるようにするには、次のポリシーを使用します。

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

RDS DB インスタンスの変更

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

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

拡張モニタリングと Performance Insights を有効にする

iam:PassRole を使用する際、ワイルドカード (*) を使用すると、すべてのリソースに iam:PassRole アクセス許可が付与されるため、制限が過度に緩和されます。ARN を指定することをおすすめします。

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

{  
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iam:GetRole",
        "iam:ListRoles",
        "rds:ModifyDBInstance",
        "rds:Describe*",
        "ec2:Describe*"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": "arn:aws:iam::AccountID:role/rds-monitoring-role"
    }
  ]
}

注: AccountID は、拡張モニタリングのロールを受ける各ユーザーに置き換えてください。

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

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

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

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

{  
  "Version": "2012-10-17",
  "Statement": [
    {
      "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": [
    {
      "Effect": "Allow",
      "Action": [
        "rds:Describe*",
        "cloudwatch:GetMetricData",
        "cloudwatch:GetMetricStatistics",
        "cloudwatch:ListMetrics"
      ],
      "Resource": "*"
    }
  ]
}

関連情報

Amazon RDS 用の Identity and Access Management

ユーザーが IAM の認証情報を使用して Amazon RDS for MySQL の DB インスタンスで認証できるようにする方法を教えてください

コメントはありません

関連するコンテンツ