为 RDS for Oracle 与 Amazon EFS 集成配置 IAM 权限
默认情况下,Amazon EFS 集成功能不使用 IAM 角色:USE_IAM_ROLE
选项设置为 FALSE
。要将 RDS for Oracle 与 Amazon EFS 和 IAM 角色集成,您的数据库实例必须具有可以访问 Amazon EFS 文件系统的 IAM 权限。
主题
步骤 1:为您的数据库实例创建 IAM 角色并附加策略
在此步骤中,您将为 RDS for Oracle 数据库实例创建一个角色,以允许 Amazon RDS 访问您的 EFS 文件系统。
创建 IAM 角色以允许 Amazon RDS 访问 EFS 文件系统
-
打开 IAM 管理控制台
。 -
在导航窗格中,选择角色。
-
选择 Create role(创建角色)。
-
对于 AWS service (亚马逊云科技服务),选择 RDS。
-
对于 Select your use case (选择您的用例),选择 RDS – Add Role to Database (RDS - 将角色添加到数据库)。
-
选择下一步。
-
不要添加任何权限策略。选择下一步。
-
将 Role name (角色名称) 设置为您的 IAM 角色的名称,例如,
rds-efs-integration-role
。您也可以添加可选的描述值。 -
选择 Create role(创建角色)。
要限制服务对特定资源的权限,我们建议在基于资源的信任关系中使用 aws:SourceArn
和 aws:SourceAccount
全局条件上下文键。这是防范混淆代理问题最有效的方法。
您可以使用这两个全局条件上下文键并让 aws:SourceArn
值包含账户 ID。在这种情况下,当 aws:SourceAccount
值和 aws:SourceArn
值中的账户使用相同策略语句时,确保二者使用相同的账户 ID。
-
如果您想对单个资源进行跨服务访问,请使用
aws:SourceArn
。 -
如果您想允许该账户中的任何资源与跨服务使用操作相关联,请使用
aws:SourceAccount
。
在信任关系中,请务必使用 aws:SourceArn
全局条件上下文键和访问角色资源的完整 Amazon Resource Name (ARN)。
以下 AWS CLI 命令会创建名为
的角色来实现此目的。rds-efs-integration-role
例
对于 Linux、macOS 或 Unix:
aws iam create-role \ --role-name
rds-efs-integration-role
\ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount":my_account_ID
, "aws:SourceArn": "arn:aws:rds:Region
:my_account_ID
:db:dbname
" } } } ] }'
对于 Windows:
aws iam create-role ^ --role-name
rds-efs-integration-role
^ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount":my_account_ID
, "aws:SourceArn": "arn:aws:rds:Region
:my_account_ID
:db:dbname
" } } } ] }'
有关更多信息,请参阅《IAM 用户指南》中的创建向 IAM 用户委派权限的角色。
步骤 2:为您的 Amazon EFS 文件系统创建文件系统策略
在此步骤中,您将为 EFS 文件系统创建文件系统策略。
创建或编辑 EFS 文件系统策略
-
打开 EFS 管理控制台
。 -
选择 File Systems (文件系统)。
-
在 File systems(文件系统)页面上,选择要为其编辑或创建文件系统策略的文件系统。将显示该文件系统的详细信息页面。
-
选择 File system policy(文件系统策略)选项卡。
如果策略为空,则使用默认 EFS 文件系统策略。有关更多信息,请参阅《Amazon Elastic File System 用户指南》中的默认 EFS 文件系统策略。
-
选择编辑。此时将显示 File system policy (文件系统策略) 页面。
-
在 Policy editor(策略编辑器)中,输入如下所示的策略,然后选择 Save(保存)。
{ "Version": "2012-10-17", "Id": "ExamplePolicy01", "Statement": [ { "Sid": "ExampleStatement01", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
123456789012
:role/rds-efs-integration-role" }, "Action": [ "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite", "elasticfilesystem:ClientRootAccess" ], "Resource": "arn:aws:elasticfilesystem:us-east-1
:123456789012
:file-system/fs-1234567890abcdef0
" } ] }
步骤 3:将您的 IAM 角色与 RDS for Oracle 数据库实例关联
在此步骤中,您将您的 IAM 角色与数据库实例关联。请注意以下要求:
-
您必须具有访问 IAM 角色的权限,并向此角色附加所需的 Amazon EFS 权限策略。
-
您一次只能将一个 IAM 角色与 RDS for Oracle 数据库实例关联。
-
实例的状态必须为 Available(可用)。
有关更多信息,请参阅《Amazon Elastic File System 用户指南》中的 Amazon EFS 的身份和访问权限管理。
将您的 IAM 角色与 RDS for Oracle 数据库实例关联
登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
选择数据库。
-
如果数据库实例不可用,请选择 Actions (操作),然后选择 Start (启动)。当实例状态显示 Started (已启动) 时,请转至下一步。
-
选择 Oracle 数据库实例名称以显示其详细信息。
-
在 Connectivity & security(连接性和安全性)选项卡上,向下滚动到页面底部的 Manage IAM roles(管理 IAM 角色)部分。
-
选择要添加到 Add IAM roles to this instance(将 IAM 角色添加到此实例)部分的角色。
-
对于 Feature(特征),选择 EFS_INTEGRATION。
-
选择 Add role (添加角色)。
以下 AWS CLI 命令将角色添加到名为
的 Oracle 数据库实例。mydbinstance
例
对于 Linux、macOS 或 Unix:
aws rds add-role-to-db-instance \ --db-instance-identifier
mydbinstance
\ --feature-name EFS_INTEGRATION \ --role-arnyour-role-arn
对于 Windows:
aws rds add-role-to-db-instance ^ --db-instance-identifier
mydbinstance
^ --feature-name EFS_INTEGRATION ^ --role-arnyour-role-arn
将
替换为您在上一步中记下的角色 ARN。必须为 your-role-arn
EFS_INTEGRATION
选项指定 --feature-name
。