Amazon RDS - 資料庫訪問控制



要訪問 Amazon RDS 資料庫例項,使用者需要特定的許可權。這可以透過 AWS IAM(身份和訪問管理)進行配置。在本教程中,我們將瞭解如何完成此配置。

配置包含兩個部分。

  • 身份驗證

  • 訪問控制

身份驗證

這包括建立使用者名稱、密碼和為使用者生成訪問金鑰。藉助訪問金鑰,可以對 AWS RDS 服務進行程式設計訪問。SDK 和 CLI 工具使用訪問金鑰對請求進行加密簽名。

我們也可以使用 IAM 角色來驗證使用者身份。但是,該角色不附加到任何特定使用者,而是任何使用者都可以臨時承擔該角色並完成所需的任務。任務完成後,可以撤銷該角色,使用者將失去身份驗證能力。

訪問控制

在使用者經過身份驗證後,附加到該使用者的策略將決定使用者可以執行的任務型別。以下是一個策略示例,該策略允許在 t2.micro 例項上為 DB 引擎 MySQL 建立 RDS 資料庫例項。

{
    "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":"*"
      }
   ]
}

禁止刪除資料庫例項

以下策略禁止使用者刪除特定資料庫例項。

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