Oracle Cloud Infrastructure GoldenGate 策略
要控制对 Oracle Cloud Infrastructure GoldenGate 的访问以及每个用户组具有的访问类型,您必须创建策略。
例如,您可以创建其成员可以访问所有 OCI GoldenGate 资源的 Administrators 组。然后,您可以为参与 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时,访问级别会增加,授予的权限是累积的。单击此处的链接,可以了解有关权限和动词之间的关系的更多信息。
-
<resource-type>:您授予组使用权限的资源类型。存在单个资源(例如goldengate-deployments、goldengate-pipelines和goldengate-connections),并且存在资源系列(例如goldengate-family),其中包括前面提到的单个资源。有关更多信息,请参见 resource-type 。
-
<location>:将策略附加到区间或租户。您可以按名称或 OCID 指定单个区间或区间路径,也可以指定tenancy来覆盖整个租户。 -
<condition>:可选。将应用此策略的一个或多个条件。
了解有关策略语法的更多信息。
如何创建策略
要创建策略,请执行以下操作:
-
在 Oracle Cloud 导航菜单中,选择身份和安全,然后在“标识”下,选择策略。
-
在“策略”页上,选择创建策略。
-
在“创建策略”页中,输入策略的名称及说明。
-
选择要在其中的创建此策略的区间。
-
在策略构建器部分中,您可以:
-
从策略用例下拉和通用策略模板(例如允许用户管理 GoldenGate 资源的必需策略)中选择 GoldenGate 服务。
-
选择显示手动编辑器以按以下格式输入策略规则:
allow <subject> to <verb> <resource-type> in <location> where <condition>条件是可选的。请参见 Details for Verbs + Resource-Type Combinations 。
提示:有关详情,请参阅建议的最低策略。
-
-
选择创建。
有关策略的更多信息,请参见策略如何工作、策略语法和策略参考。
建议的最低策略
提示:
要使用公用策略模板添加所有必需的策略,请执行以下操作:
-
对于策略用例,从下拉列表中选择 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>注:
-
使用专用端点创建部署或连接时,将在所选子网中分配一个或多个 IP。您必须同时在子网和部署或连接的区间中提供所需的网络访问权限,才能允许服务创建网络资源。
-
同样,使用专用端点删除部署或连接以允许服务删除网络资源时,需要相应的网络访问权限。
(可选)您可以结合使用细粒度策略进一步保护网络资源。请参见 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> -
允许用户在启用了 IAM 的租户中读取 Identity and Access Management (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 AI 数据库,适用于源和/或目标数据库。例如:
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> where target.bucket.name = '<bucket-name>' 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> -
Zero Trust Packet Routing,ZPR(零信任数据包路由)。仅当您向 VCN 和/或负载平衡器添加了安全属性来控制连接和公共部署的访问时,才需要添加以下策略来允许公共互联网流量到负载平衡器,以及负载平衡器与专用端点之间的流量流:
-
如果同时为 VCN 和负载平衡器添加了安全属性:
in <vcn-sa-key>:<vcn-sa-value> VCN allow <lb-sa-key>:<lb-sa-value> endpoints to connect to <pe-sa-key>:<pe-sa-value> endpoints in <vcn-sa-key>:<vcn-sa-value> VCN allow all-endpoints to connect to <lb-sa-key>:<lb-sa-value> endpoints -
如果仅为 VCN 而不是负载平衡器添加了安全属性,并且负载平衡器位于具有 CIDR 10.0.1.0/24 的公共子网中:
in <vcn-sa-key>:<vcn-sa-value> VCN allow '10.0.1.0/24' to connect to <pe-sa-key>:<pe-sa-value> endpoints注:对于其他资源(例如专用连接和专用部署),安全属性将添加到创建的专用端点。默认情况下,不会使用专用部署创建负载平衡器,因此上述 ZPR 示例不适用。您可能需要 ZPR 策略,因为在这种情况下 ZPR 会保护专用端点。确切的策略取决于您的用例。
单击此处的链接,可以了解有关 ZPR 策略语法的更多信息。
-
以下语句向组授予管理工作区的标记名称空间和标记的权限:
allow group <identity-domain>/<group-name> to manage tag-namespaces in <location>
要添加定义的标记,您必须具有使用标记名称空间的权限。要了解有关标记的更多信息,请参阅资源标记。
网络资源的策略示例
您可以使用以下策略轻松地允许用户访问区间中的网络资源:
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-pipelines in compartment <compartment-name>
支持的变量
向策略添加条件时,您可以使用 Oracle Cloud Infrastructure 常规变量或服务特定变量。
Oracle Cloud Infrastructure GoldenGate 支持所有常规变量。有关详细信息,请参阅所有请求的常规变量。
动词 + 资源类型组合的详细信息
创建策略时可以使用各种 Oracle Cloud Infrastructure 动词和资源类型。
下表显示了 Oracle Cloud Infrastructure GoldenGate 的每个动词所涵盖的权限和 API 操作。从 inspect 到 read、再到 use、再到 manage,访问级别是连续的。
goldengate- 部署
| 权限 | 完全覆盖的 API |
|---|---|
| INSPECT | |
| GOLDENGATE_DEPLOYMENT_INSPECT | 列表部署 |
| ListWorkRequests | |
| READ | |
| 检验 + | 检验 + |
| GOLDENGATE_DEPLOYMENT_READ | 获取部署 |
| 获取工作请求列表 | |
| 工作请求错误列表 | |
| WorkRequestLog | |
| USE | |
| 读取 + | 读取 + |
| GOLDENGATE_DEPLOYMENT_UPDATE | 更新部署 |
| StartDeployment | |
| StopDeployment | |
| 还原部署 | |
| 管理 | |
| 使用 + | 使用 + |
| GOLDENGATE_DEPLOYMENT_CREATE | 创建部署 |
| GOLDENGATE_DEPLOYMENT_DELETE | 删除部署 |
| GOLDENGATE_DEPLOYMENT_MOVE | 更改部署区间 |
goldengate-connections
| 权限 | 完全覆盖的 API |
|---|---|
| INSPECT | |
| GOLDENGATE_CONNECTION_INSPECT | 列表连接 |
| READ | |
| 检验 + | 检验 + |
| GOLDENGATE_CONNECTION_READ | GetConnection |
| USE | |
| 读取 + | 读取 + |
| GOLDENGATE_CONNECT_UPDATE | 更新连接 |
| 管理 | |
| 使用 + | 使用 + |
| GOLDENGATE_CONNECTION_CREATE | 创建连接 |
| GOLDENGATE_CONNECT_DELETE | DeleteConnection |
| GOLDENGATE_CONNECTION_MOVE | 更改连接区间 |
goldengate-connection-assignments
| 权限 | 完全覆盖的 API |
|---|---|
| INSPECT | |
| GOLDENGATE_CONNECTION_ASSIGNMENT_INSPECT | ListConnectionAssign |
| READ | |
| 检验 + | 检验 + |
| GOLDENGATE_CONNECTION_ASSIGNMENT_READ | GetConnectionAssignment |
| USE | |
| 读取 + | 读取 + |
| 不适用 | 不适用 |
| 管理 | |
| 使用 + | 使用 + |
| GOLDENGATE_CONNECTION_ASSIGNMENT_CREATE | 创建连接分配 |
| GOLDENGATE_CONNECTION_ASSIGNMENT_DELETE | 删除连接分配 |
goldengate-deployment-backups
| 权限 | 完全覆盖的 API |
|---|---|
| INSPECT | |
| GOLDENGATE_DEPLOYMENT_BACKUP_INSPECT | 列表部署备份 |
| READ | |
| 检验 + | 检验 + |
| GOLDENGATE_DEPLOYMENT_BACKUP_READ | 获取部署备份 |
| 还原部署 | |
| USE | |
| 读取 + | 读取 + |
| GOLDENGATE_DEPLOYMENT_BACKUP_UPDATE | 更新部署备份 |
| 管理 | |
| 使用 + | 使用 + |
| GOLDENGATE_DEPLOYMENT_BACKUP_CREATE | 创建部署备份 |
| GOLDENGATE_DEPLOYMENT_BACKUP_DELETE | 删除部署备份 |
| GOLDENGATE_DEPLOYMENT_BACKUP_OVE | 更改部署备份区间 |
每个 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_CONNECT_UPDATE |
DeleteConnection |
GOLDENGATE_CONNECT_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_OVE |
GetDeploymentUpgrade |
GOLDENGATE_DEPLOYMENT_UPGRADE_READ |
ListDeploymentUpgrades |
GOLDENGATE_DEPLOYMENT_UPGRADE_INSPECT |
GetWorkRequest |
GOLDENGATE_DEPLOYMENT_READ |
ListWorkRequests |
GOLDENGATE_DEPLOYMENT_INSPECT |
ListWorkRequestErrors |
GOLDENGATE_DEPLOYMENT_READ |
ListWorkRequestLogs |
GOLDENGATE_DEPLOYMENT_READ |