开发手册 欢迎您!
软件开发者资料库

Amazon RDS - 数据库访问控制

Amazon RDS初学者教程 - 从基本到高级概念的简单简单步骤学习Amazon RDS,其中包括概述,环境,接口,数据库实例,数据库存储,MS SQL功能,MS SQL创建数据库,MS SQL连接到数据库, MS SQL DB导出导入,带有SSL的MS SQL DB,MS SQL DBA任务,Oracle功能,Oracle创建数据库,Oracle连接到数据库,Oracle DB数据导入,Oracle DBA任务,MariaDB功能,MariaDB连接到数据库,MariaDB数据导入, PostgresSQL功能,PostgresSQL创建数据库,PostgresSQL连接数据库,PostgresSQL数据导入,MySQL功能,MySQL创建数据库,MySQL连接数据库,MySQL数据库导出导入,MySQL DBA任务,多可用区部署,数据库快照,数据库监控,事件通知,DB访问控制。

要访问Amazon RDS数据库实例,用户需要特定权限.这是使用AWS IAM(身份和访问管理)配置的.在本教程中,我们将了解如何完成此配置.


配置涉及两个部分.

  • 身份验证

  • 访问控制

身份验证

它涉及创建用户名,密码并为用户生成访问密钥.借助访问密钥,可以对AWS RDS服务进行编程访问. SDK和CLI工具使用访问密钥以加密方式登录请求.

我们可以使用IAM角色对用户进行身份验证.但该角色未附加到任何特定用户,而是任何用户都可以临时承担该角色并完成所需任务.任务结束后,可以撤消角色,并且用户将失去身份验证功能.

访问控制

用户通过身份验证后,将生效附加到该用户确定了您可以进行的任务类型.下面是一个策略示例,它允许在数据库引擎MySQL的t2.micro实例上创建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"      }   ]}