Amazon Aurora支持细粒度的访问控制。可以使用IAM权限策略和数据库引擎特定的访问控制列表(例如MySQL和PostgreSQL)来控制表级别的访问。
以下是MySQL上的一个示例,它使用REVOKE和GRANT语句来撤销/授予特定用户访问表的权限。
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1;
GRANT SELECT, INSERT, UPDATE ON mydb.mytable TO user1;
对于PostgreSQL,可以使用GRANT和REVOKE语句以及ALTER DEFAULT PRIVILEGES语句来设置表级别的访问控制。
GRANT SELECT, INSERT, UPDATE ON mytable TO user1;
REVOKE SELECT ON mytable FROM user2;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE ON TABLES TO user1;
使用IAM策略时,可以通过为用户或IAM角色授予特定数据库或表的访问权限来控制访问。例如,以下IAM策略允许user1访问mydb数据库中的mytable表:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"rds-data:ExecuteStatement",
"rds-data:ExecuteSql"
],
"Resource": "arn:aws:rds-data:us-east-1:1234567890:database:mydatabase",
"Condition": {
"ForAnyValue:StringEquals": {
"rds-data:db-name": "mydb"
}
}
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"rds-data:ExecuteStatement",
"rds-data:ExecuteSql"
],
"Resource": "arn:aws:rds-data:us-east-