Amazonrds-db-access-control

提供:Dev Guides
移動先:案内検索

Amazon RDS-DBアクセス制御

Amazon RDS DBインスタンスにアクセスするには、ユーザーに特定のアクセス許可が必要です。 これは、AWS IAM(IDおよびアクセス管理)を使用して構成されます。 このチュートリアルでは、この構成がどのように行われるかを確認します。

構成には2つの部分が含まれます。

  • 認証
  • アクセス制御

認証

これには、ユーザー名、パスワードの作成、ユーザーのアクセスキーの生成が含まれます。 アクセスキーの助けを借りて、AWS RDSサービスにプログラムでアクセスすることができます。 SDKおよびCLIツールは、アクセスキーを使用して暗号化してリクエストでサインインします。

IAMロールを使用してユーザーを認証することもできます。 ただし、ロールは特定のユーザーに関連付けられているのではなく、どのユーザーでも一時的にロールを引き受けて必要なタスクを完了することができます。 タスクが終了すると、ロールは取り消され、ユーザーは認証機能を失います。

アクセス制御

ユーザーが認証されると、そのユーザーにアタッチされたポリシーによって、ユーザーが実行できるタスクのタイプが決定されます。 以下は、DBエンジンMySQLのt2.microインスタンスでのRDS DBインスタンスの作成を許可するポリシーの例です。

{
    "Version": "2018-09-11",
    "Statement": [
        {
            "Sid": "AllowCreateDBInstanceOnly",
            "Effect": "Allow",
            "Action": [
                "rds:CreateDBInstance"
            ],
            "Resource": [
                "arn:aws:rds:*:123456789012:db:test*",
                "arn:aws:rds:*:123456789012:og:default*",
                "arn:aws:rds:*:123456789012:pg:default*",
                "arn:aws:rds:*:123456789012:subgrp:default"
            ],
            "Condition": {
                "StringEquals": {
                    "rds:DatabaseEngine": "mysql",
                    "rds:DatabaseClass": "db.t2.micro"
                }
            }
        }
    ]
}

RDSリソースに対するアクション

以下の例では、RDSリソースに対する記述アクションを許可するポリシーがあります。 *記号は、リソースを表すために使用されます。

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

DBインスタンスの削除を許可しない

以下のポリシーは、ユーザーが特定のDBインスタンスを削除することを許可しません。

{
   "Version":"2012-10-17",
   "Statement":[
      {
         "Sid":"DenyDelete1",
         "Effect":"Deny",
         "Action":"rds:DeleteDBInstance",
         "Resource":"arn:aws:rds:us-west-2:123456789012:db:my-mysql-instance"
      }
   ]
}