Oracle Cloud Infrastructure GoldenGate 策略
要控制对 Oracle Cloud Infrastructure GoldenGate 的访问以及每个用户组具有的访问类型,您必须创建策略。
例如,您可以创建管理员组,其成员可以访问所有 OCI GoldenGate 资源。然后,您可以为参与 OCI GoldenGate 的其他人创建单独的组,并创建限制他们访问不同区间中的 OCI GoldenGate 资源的策略。
有关 Oracle Cloud Infrastructure 策略的完整列表,请参阅策略参考。
创建策略
策略定义组成员可以执行哪些操作以及哪些区间。
使用 Oracle Cloud 控制台创建策略。在 Oracle Cloud 控制台导航菜单中,依次选择身份和安全和身份,然后选择策略。策略使用以下语法编写:
allow group <identity-domain>/<group-name> to <verb> <resource-type> in <location> where <condition>
参数定义如下:
<identity-domain>
:(可选)如果使用 OCI IAM 进行身份管理,则包括用户组的身份域。如果省略,则 OCI 使用默认域。<group-name>
:要为其授予权限的用户组的名称。<verb>
:为组提供对资源类型的特定级别的访问权限。当动词从inspect
到read
到use
到manage
时,访问级别增加和授予的权限是累积的。单击此处的链接,可以了解有关 permissions 和 verbs 关系的更多信息。
<resource-type>
:授予组处理权限的资源类型。有个人资源,例如goldengate-deployments
、goldengate-pipelines
和goldengate-connections
,也有资源系列,例如goldengate-family
,其中包括前面提到的个人资源。有关更多信息,请参见 resource-types 。
<location>
:将策略附加到区间或租户。您可以按名称或 OCID 指定单个区间或区间路径,也可以指定tenancy
来覆盖整个租户。<condition>
:可选。此策略将适用的一个或多个条件。
单击此处的链接,可以了解有关策略语法的更多信息。
建议的最低策略
提示:
要使用公用策略模板添加所有必需的策略,请执行以下操作:- 对于策略用例,从下拉列表中选择 GoldenGate 服务。
- 对于常用模板,从下拉列表中选择允许用户管理 GoldenGate 资源的必需策略。
至少,您需要策略来:
- 允许用户使用或管理 GoldenGate 资源,以便他们可以处理部署和连接。例如:
allow group <identity-domain>/<group-name> to manage goldengate-family in <location>
- 允许用户管理网络资源,以便他们在创建 GoldenGate 资源时查看和选择区间和子网,以及创建和删除专用端点。例如:
allow group <identity-domain>/<group-name> to manage virtual-network-family in <location>
(可选)您可以结合使用细粒度策略来进一步保护网络资源。请参见 Policy Examples for Securing Network Resources 。
- 创建动态组以根据定义的规则向资源授予权限,从而允许您的 GoldenGate 部署和/或管道访问租户中的资源。将
<dynamic-group-name>
替换为您选择的名称。您可以根据需要创建任意数量的动态组,例如,控制不同区间或租户中的部署权限。name: <dynamic-group-name> Matching rule: ALL {resource.type = 'goldengatedeployment', resource.compartment.id = '<location>'}
提示:
此列表后面的策略请参阅
<dynamic-group-name>
。如果创建多个动态组,请确保在添加以下任何策略时引用正确的动态组名称。 - 如果使用具有密码密钥的连接,则您分配给该连接的部署必须能够访问该连接的密码密钥。确保将策略添加到区间或租户:
allow dynamic-group <identity-domain>/<dynamic-group-name> to read secret-bundles in <location>
- 允许用户读取身份和访问管理 (Identity and Access Management,IAM) 用户和组以在启用了 IAM 的租户中验证:
allow service goldengate to {idcs_user_viewer, domain_resources_viewer} in <location>
allow dynamic-group <identity-domain>/<dynamic-group-name> to {idcs_user_viewer, domain_resources_viewer} in <location>
- Oracle Vault,用于访问客户管理的加密密钥和密码密钥。例如:
allow group <identity-domain>/<group-name> to manage secret-family in <location> allow group <identity-domain>/<group-name> to use keys in <location> allow group <identity-domain>/<group-name> to use vaults in <location> allow dynamic-group <identity-domain>/<dynamic-group-name> to use keys in <location> allow dynamic-group <identity-domain>/<dynamic-group-name> to use vaults in <location> allow dynamic-group <identity-domain>/<dynamic-group-name> to read secret-bundles in <location>
您可能还需要为以下服务添加策略,具体取决于您是否打算使用以下服务:
- Oracle 数据库,适用于源和/或目标数据库。例如:
allow group <identity-domain>/<group-name> to read database-family in <location>
allow group <identity-domain>/<group-name> to read autonomous-database-family in <location>
- Oracle 对象存储,用于存储手动 OCI GoldenGate 备份。例如:
allow group <identity-domain>/<group-name> to manage objects in <location> allow dynamic-group <identity-domain>/<dynamic-group-name> to manage objects in <location> allow group <identity-domain>/<group-name> to inspect buckets in <location>
- OCI 日志记录,用于访问日志组。例如:
allow group <identity-domain>/<group-name> to read log-groups in <location> allow group <identity-domain>/<group-name> to read log-content in <location>
- 负载平衡器,如果启用对部署控制台的公共访问:
allow group <identity-domain>/<group-name> to manage load-balancers in <location> allow group <identity-domain>/<group-name> to manage public-ips in <location> allow group <identity-domain>/<group-name> to manage network-security-groups in <location> allow group <identity-domain>/<group-name> to manage vcns in <location> where ANY {request.operation = 'CreateNetworkSecurityGroup', request.operation = 'DeleteNetworkSecurityGroup'}
- 工作请求:
allow group <identity-domain>/<group-name> to inspect work-requests in <location>
以下语句授予组管理工作区的标记名称空间和标记的权限:
allow group <identity-domain>/<group-name> to manage tag-namespaces in <location>
要添加定义的标记,您必须具有使用标记名称空间的权限。要了解有关标记的更多信息,请参阅资源标记。
有关更多信息和其他示例策略,请参见 OCI GoldenGate Policies 。
保护网络资源的策略示例
您可以通过以下策略轻松允许用户访问区间内的网络资源:
allow group <group-name> to use virtual-network-family in compartment <compartment-name>
或者,可以使用以下策略在更细粒度的级别保护网络资源:
操作 | 对基本资源的必需访问 |
---|---|
创建专用端点 | 对于专用端点区间:
对于子网区间:
|
更新专用端点 | 对于专用端点区间:
|
删除专用端点 | 对于专用端点区间:
对于子网区间:
|
更改专用端点区间 | 如果从一个区间移到另一区间,则原始区间中的所有权限也必须存在于新区间中。 |
资源类型
Oracle Cloud Infrastructure GoldenGate 提供了用于编写策略的聚合和单个资源类型。
汇总资源类型 | 单个资源类型 |
---|---|
goldengate-family |
|
聚合 goldengate-family
资源类型涵盖的 API 还涵盖了每个资源类型的 API。例如:
allow group gg-admins to manage goldengate-family in compartment <compartment-name>
与编写以下策略相同:
allow group gg-admins to manage goldengate-deployments in compartment <compartment-name>
allow group gg-admins to manage goldengate-connections in compartment <compartment-name>
allow group gg-admins to manage goldengate-connection-assignments in compartment <compartment-name>
allow group gg-admins to manage goldengate-deployment-upgrades in compartment <compartment-name>
allow group gg-admins to manage goldengate-deployment-backups in compartment <compartment-name>
allow group gg-admins to manage goldengate-pipeline in compartment <compartment-name>
支持的变量
向策略添加条件时,您可以使用 Oracle Cloud Infrastructure 一般变量或服务特定变量。
Oracle Cloud Infrastructure GoldenGate 支持所有常规变量。有关更多信息,请参见 general variables for all requests 。
动词 + 资源类型组合的详细信息
创建策略时可以使用各种 Oracle Cloud Infrastructure 动词和资源类型。
下表显示了 Oracle Cloud Infrastructure GoldenGate 的每个动词所涵盖的权限和 API 操作。从 inspect
到 read
、从 use
到 manage
,访问级别是累加的。
Goldengate- 部署
权限 | API 全面覆盖 |
---|---|
INSPECT | |
GOLDENGATE_DEPLOYMENT_INSPECT | ListDeployments |
READ | |
检查 + | 检查 + |
GOLDENGATE_DEPLOYMENT_READ | GetDeployment |
USE | |
读取 + | 读取 + |
GOLDENGATE_DEPLOYMENT_UPDATE | UpdateDeployment |
StartDeployment | |
StopDeployment | |
RestoreDeployment | |
管理 | |
USE + | USE + |
GOLDENGATE_DEPLOYMENT_CREATE | CreateDeployment |
GetWorkRequest | |
ListWorkRequests | |
ListWorkRequestErrors | |
ListWorkRequestLogs | |
GOLDENGATE_DEPLOYMENT_DELETE | DeleteDeployment |
GOLDENGATE_DEPLOYMENT_MOVE | ChangeDeploymentCompartment |
金门连接
权限 | API 全面覆盖 |
---|---|
INSPECT | |
GOLDENGATE_CONNECTION_INSPECT | ListConnections |
READ | |
检查 + | 检查 + |
GOLDENGATE_CONNECTION_READ | GetConnection |
USE | |
读取 + | 读取 + |
GOLDENGATE_CONNECTION_UPDATE | UpdateConnection |
管理 | |
USE + | USE + |
GOLDENGATE_CONNECTION_CREATE | CreateConnection |
GOLDENGATE_CONNECTION_DELETE | DeleteConnection |
GOLDENGATE_CONNECTION_MOVE | ChangeConnectionCompartment |
goldengate-connection-assignations
权限 | API 全面覆盖 |
---|---|
INSPECT | |
GOLDENGATE_CONNECTION_ASSIGNMENT_INSPECT | ListConnectionAssignments |
READ | |
检查 + | 检查 + |
GOLDENGATE_CONNECTION_ASSIGNMENT_READ | GetConnectionAssignment |
USE | |
读取 + | 读取 + |
不适用 | 不适用 |
管理 | |
USE + | USE + |
GOLDENGATE_CONNECTION_ASSIGNMENT_CREATE | CreateConnectionAssignment |
GOLDENGATE_CONNECTION_ASSIGNMENT_DELETE | DeleteConnectionAssignment |
goldengate-deployment-backups
权限 | API 全面覆盖 |
---|---|
INSPECT | |
GOLDENGATE_DEPLOYMENT_BACKUP_INSPECT | ListDeploymentBackups |
READ | |
检查 + | 检查 + |
GOLDENGATE_DEPLOYMENT_BACKUP_READ | GetDeploymentBackup |
RestoreDeployment | |
USE | |
读取 + | 读取 + |
GOLDENGATE_DEPLOYMENT_BACKUP_UPDATE | UpdateDeploymentBackup |
管理 | |
USE + | USE + |
GOLDENGATE_DEPLOYMENT_BACKUP_CREATE | CreateDeploymentBackup |
GOLDENGATE_DEPLOYMENT_BACKUP_DELETE | DeleteDeploymentBackup |
GOLDENGATE_DEPLOYMENT_BACKUP_MOVE | ChangeDeploymentBackupCompartment |
每个 API 操作所需的权限
下面是按逻辑顺序对 Oracle Cloud Infrastructure GoldenGate 执行的 API 操作的列表,按资源类型分组。
资源类型包括 goldengate-deployments
、goldengate-connections
和 goldengate-deployment-backups
。
API 操作 | 权限 |
---|---|
ListDeployments |
GOLDENGATE_DEPLOYMENT_INSPECT |
CreateDeployment |
GOLDENGATE_DEPLOYMENT_CREATE |
GetDeployment |
GOLDENGATE_DEPLOYMENT_READ |
UpdateDeployment |
GOLDENGATE_DEPLOYMENT_UPDATE |
DeleteDeployment |
GOLDENGATE_DEPLOYMENT_DELETE |
StartDeployment |
GOLDENGATE_DEPLOYMENT_UPDATE |
StopDeployment |
GOLDENGATE_DEPLOYMENT_UPDATE |
RestoreDeployment |
GOLDENGATE_DEPLOYMENT_BACKUP_READ 和 GOLDENGATE_DEPLOYMENT_UPDATE |
ChangeDeploymentCompartment |
GOLDENGATE_DEPLOYMENT_MOVE |
UpgradeDeployment |
GOLDENGATE_DEPLOYMENT_UPDATE |
ListConnections |
GOLDENGATE_CONNECTION_INSPECT |
CreateConnection |
GOLDENGATE_CONNECTION_CREATE |
GetConnection |
GOLDENGATE_CONNECTION_READ |
UpdateConnection |
GOLDENGATE_CONNECTION_UPDATE |
DeleteConnection |
GOLDENGATE_CONNECTION_DELETE |
ChangeConnectionCompartment |
GOLDENGATE_CONNECTION_MOVE |
ListConnectionAssignments |
GOLDENGATE_CONNECTION_ASSIGNMENT_INSPECT |
CreateConnectionAssignment |
GOLDENGATE_CONNECTION_ASSIGNMENT_CREATE, GOLDENGATE_DEPLOYMENT_UPDATE, GOLDENGATE_CONNECTION_UPDATE |
GetConnectionAssignment |
GOLDENGATE_CONNECTION_ASSIGNMENT_READ |
DeleteConnectionAssignment |
GOLDENGATE_CONNECTION_ASSIGNMENT_DELETE, GOLDENGATE_DEPLOYMENT_UPDATE, GOLDENGATE_CONNECTION_UPDATE |
ListDeploymentBackups |
GOLDENGATE_DEPLOYMENT_BACKUP_INSPECT |
GetDeploymentBackup |
GOLDENGATE_DEPLOYMENT_BACKUP_READ |
CreateDeploymentBackup |
GOLDENGATE_DEPLOYMENT_BACKUP_CREATE, GOLDENGATE_DEPLOYMENT_READ |
UpdateDeploymentBackup |
GOLDENGATE_DEPLOYMENT_BACKUP_UPDATE |
CancelDeploymentBackup |
GOLDENGATE_DEPLOYMENT_BACKUP_UPDATE |
DeleteDeploymentBackup |
GOLDENGATE_DEPLOYMENT_BACKUP_DELETE |
ChangeDeploymentBackupCompartment |
GOLDENGATE_DEPLOYMENT_BACKUP_MOVE |
GetDeploymentUpgrade |
GOLDENGATE_DEPLOYMENT_UPGRADE_READ |
ListDeploymentUpgrades |
GOLDENGATE_DEPLOYMENT_UPGRADE_INSPECT |
GetWorkRequest |
GOLDENGATE_DEPLOYMENT_CREATE |
ListWorkRequests |
GOLDENGATE_DEPLOYMENT_CREATE |
ListWorkRequestErrors |
GOLDENGATE_DEPLOYMENT_CREATE |
ListWorkRequestLogs |
GOLDENGATE_DEPLOYMENT_CREATE |