跳至內容

使用者對 Amazon RDS 資料庫執行個體執行建立、刪除、修改、備份和復原所需的最低權限是什麼?

3 分的閱讀內容
0

我想要授予 AWS Identity and Access Management (IAM) 使用者管理 Amazon Relational Database Service (Amazon RDS) 資料庫執行個體所需的最低權限。

解決方法

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

若要設定 IAM 使用者對 RDS 資料庫執行個體的存取權,請完成下列步驟:

  1. 開啟 IAM console (IAM 主控台)。
  2. 在導覽窗格中,選擇 Users (使用者)。
  3. 選擇 Add user (新增使用者),然後輸入 User name (使用者名稱)。
  4. 對於 Access type (存取類型),請選擇 AWS Management Console access (AWS 管理主控台存取權),然後建立密碼以使用 Aurora 和 RDS 主控台。若要提供對 AWS CLI 的存取權,請選擇 Programmatic access (以程式設計方式存取)。
    **重要:**在 Programmatic access (以程式設計方式存取),選擇 Download.csv 以下載存取金鑰 ID 和私密存取金鑰。您需要密鑰才能在稍後建立安全權杖。
  5. 檢閱權限和標籤,然後選擇 Create user (建立使用者)。
    **注意:**這會建立具有 IAMUserChangePassword 政策的 IAM 使用者。
  6. 為要在 Amazon RDS 中執行的所需動作建立 IAM 政策
  7. 將您的 IAM 政策新增至您的使用者

IAM 政策範例

下列政策範例提供執行指定動作所需的最低權限。您可能會在 Aurora 和 RDS 主控台中看到錯誤,因為政策中不存在所需的權限。例如,您可能會看到 IAMUser is not authorized to perform: rds:Action 錯誤訊息。

Describe 動作可能會發生錯誤,但該錯誤不影響您執行這些動作的能力。若要避免錯誤,請修改以下 IAM 政策範例,或使用 AWS CLI 執行動作。

建立與刪除 RDS 資料庫執行個體

若要允許使用者建立未啟用加密的 RDS 資料庫執行個體,請使用以下政策:

{  
  "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 資料庫執行個體,請使用以下政策:

{  
  "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 資料庫執行個體,請使用以下政策:

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

若要允許使用者建立和刪除 RDS 資料庫執行個體,請使用以下政策:

{  
  "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 資料庫執行個體

若要允許使用者啟動和停止 RDS 資料庫執行個體,請使用以下政策:

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

執行備份與復原

若要允許使用者建立資料庫快照,請使用以下政策:

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

若要允許使用者還原使用資料庫快照的 RDS 資料庫執行個體,請使用以下政策:

{  
  "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 資料庫執行個體

若要允許使用者變更資料庫執行個體類別類型、已配置儲存體、儲存體類型和執行個體版本,請使用以下政策:

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

啟用 Enhanced Monitoring 和 Performance Insights

當您使用 iam:PassRole 時,萬用字元 (*) 的權限過大,因為它允許對所有資源使用 iam:PassRole 權限。最佳實務是指定 ARN。

若要允許使用者啟用 Enhanced Monitoring,請使用以下政策:

{  
  "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 替換為每位接收 Enhanced Monitoring 角色的使用者。

若要允許使用者啟用 Performance Insights,請使用以下政策:

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

建立、修改和刪除資料庫參數群組與資料庫選項群組

若要允許使用者建立、修改或刪除資料庫參數群組和選項群組,請使用以下政策:

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

從 Aurora 和 RDS 主控台檢視 Amazon CloudWatch 指標

若要允許使用者從 Aurora 和 RDS 主控台檢視 CloudWatch 指標,請使用以下政策:

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

相關資訊

Amazon RDS 的身分與存取管理

如何允許使用者透過其 Amazon IAM 憑證對 Amazon RDS for MySQL 資料庫執行個體進行驗證?

AWS 官方已更新 1 年前