- VNetの作成
- VNetの変更
- VNetの削除
- 委任サブネットの作成
- 委任サブネットの変更
- 委任サブネットの削除
|
Azure |
ネットワーク管理者 |
組込みロール: ネットワーク・コントリビュータ
{
"Name": "Custom VNet & Subnet Admin",
"IsCustom": true,
"Description": "Allows read, write, and delete permissions on Azure virtual networks and subnets.",
"Actions": [
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/write",
"Microsoft.Network/virtualNetworks/delete",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/virtualNetworks/subnets/write",
"Microsoft.Network/virtualNetworks/subnets/delete"
],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/subscriptions/{subscription-id}"
]
}
|
- Exadataインフラストラクチャの作成
- Exadataインフラストラクチャの変更
- Exadataインフラストラクチャの削除
|
Azure |
インフラストラクチャ管理者 |
組込みロール: Oracle.Database Exadataインフラストラクチャ管理者
{
"Name": "Oracle.Database Exadata Infrastructure Administrator",
"IsCustom": true,
"Description": "Grants full access to manage all Oracle.Database resources",
"Actions": [
"Oracle.Database/cloudExadataInfrastructures/*/read",
"Oracle.Database/cloudExadataInfrastructures/*/write",
"Oracle.Database/cloudExadataInfrastructures/*/delete",
"Oracle.Database/cloudVmClusters/*/read",
"Oracle.Database/cloudVmClusters/*/write",
"Oracle.Database/cloudVmClusters/*/delete",
"Oracle.Database/cloudVmClusters/*/action",
"Oracle.Database/Locations/*/read",
"Oracle.Database/Locations/*/write",
"Oracle.Database/Operations/read",
"Oracle.Database/oracleSubscriptions/*/read",
"Oracle.Database/oracleSubscriptions/listCloudAccountDetails/action",
"Oracle.Database/resourceAnchors/*",
"Oracle.Database/networkAnchors/*",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/virtualNetworks/subnets/write",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/locations/operations/read",
"Microsoft.Resources/deployments/*",
"Microsoft.Compute/sshPublicKeys/read",
"Microsoft.Compute/sshPublicKeys/write",
"Microsoft.Compute/sshPublicKeys/generateKeyPair/action"
],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/subscriptions/{subscription-id}"
]
}
|
- Exadata VMクラスタの作成
- Exadata VMクラスタの変更
- Exadata VMクラスタの削除
|
Azure |
インフラストラクチャ管理者およびデータベース管理者 |
組込みロール: Oracle.Database VmCluster管理者の組込みロール {
"Name": "Oracle.Database VmCluster Administrator",
"IsCustom": true,
"Description": "Grants full access to manage Exadata VmClusters",
"Actions": [
"Oracle.Database/cloudVmClusters/*/read",
"Oracle.Database/cloudVmClusters/*/write",
"Oracle.Database/cloudVmClusters/*/delete",
"Oracle.Database/cloudExadataInfrastructures/write",
"Oracle.Database/cloudExadataInfrastructures/*/read",
"Oracle.Database/Locations/*/read",
"Oracle.Database/Locations/*/write",
"Oracle.Database/Operations/read",
"Oracle.Database/oracleSubscriptions/*/read",
"Oracle.Database/resourceAnchors/*",
"Oracle.Database/networkAnchors/*",
"Microsoft.Resources/deployments/*",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/virtualNetworks/subnets/write",
"Microsoft.Network/locations/operations/read",
"Microsoft.Compute/sshPublicKeys/read",
"Microsoft.Compute/sshPublicKeys/write",
"Microsoft.Compute/sshPublicKeys/generateKeyPair/action"
],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/subscriptions/{subscription-id}"
]
}
|
- Exascale VMクラスタの作成
- Exascale VMクラスタの変更
- Exascale VMクラスタの削除
|
Azure |
インフラストラクチャ管理者およびデータベース管理者 |
組込みロール: Oracle.Database Exascale VmCluster管理者 {
"Name": "Oracle.Database Exascale VmCluster Administrator",
"IsCustom": true,
"Description": "Grants full access to manage Exascale VmClusters",
"Actions": [
"Oracle.Database/exascaleDbStorageVaults/read",
"Oracle.Database/exadbVmClusters/*/read",
"Oracle.Database/exadbVmClusters/*/write",
"Oracle.Database/exadbVmClusters/*/delete",
"Oracle.Database/exadbVmClusters/*/action",
"Oracle.Database/Locations/*/read",
"Oracle.Database/Locations/*/write",
"Oracle.Database/Operations/read",
"Oracle.Database/oracleSubscriptions/*/read",
"Oracle.Database/resourceAnchors/*",
"Oracle.Database/networkAnchors/*",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/deployments/*",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/virtualNetworks/subnets/write",
"Microsoft.Network/locations/operations/read",
"Microsoft.Compute/sshPublicKeys/read",
"Microsoft.Compute/sshPublicKeys/write",
"Microsoft.Compute/sshPublicKeys/generateKeyPair/action"
],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/subscriptions/{subscription-id}"
]
}
|
- Autonomous AI Databaseの作成
- 自律型AIデータベースの変更
- 自律型AIデータベースの削除
|
Azure |
データベース管理者 |
組込みロール: Oracle.Database Autonomous Database管理者
[
{
"Name": "Oracle.Database Autonomous Database Administrator",
"IsCustom": true,
"Description": "Grants full access to manage all ADB-S resources",
"Actions": [
"Oracle.Database/autonomousDatabases/*/read",
"Oracle.Database/autonomousDatabases/*/write",
"Oracle.Database/autonomousDatabases/*/delete",
"Oracle.Database/Locations/*/read",
"Oracle.Database/Locations/*/write",
"Oracle.Database/Operations/read",
"Oracle.Database/oracleSubscriptions/*/read",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/virtualNetworks/subnets/write",
"Microsoft.Network/locations/*/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/deployments/*"
],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/subscriptions/{subscription-id}"
]
},
{
"Name": "Oracle.Database Autonomous Database Global Administrator",
"IsCustom": true,
"Description": "Grants full access to manage all Autonomous Database resources",
"Actions": [
"Oracle.Database/autonomousDatabases/*/read",
"Oracle.Database/autonomousDatabases/*/write",
"Oracle.Database/autonomousDatabases/*/delete",
"Oracle.Database/autonomousDatabases/*/action",
"Oracle.Database/Locations/*/read",
"Oracle.Database/Locations/*/write",
"Oracle.Database/Operations/read",
"Oracle.Database/oracleSubscriptions/*/read",
"Oracle.Database/oracleSubscriptions/*/action",
"Oracle.Database/resourceAnchors/*",
"Oracle.Database/networkAnchors/*",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/deployments/*",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/virtualNetworks/subnets/write",
"Microsoft.Network/locations/operations/read"
],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/subscriptions/{subscription-id}"
]
}
]
|
- Exadata Database (CDBおよびPDB)の作成
- Exadata Database (CDBおよびPDB)の変更
- Exadata Database (CDBおよびPDB)の削除
- Exascaleデータベースの作成
- Exascaleデータベースの変更
- Exascaleデータベースの削除
|
OCI |
データベース管理者 |
OCI IAM: ユーザーがOCIテナンシ管理者でない場合は、次の事前作成済グループの一部である必要があります:
-
odbaa-db-family-administrators
odbaa-exa-cdb-administrators
odbaa-exa-pdb-administrators
- 次のポリシー・ステートメントを持つその他のグループ:
Allow group odbaa-db-family-administrators to manage database-family in compartment id <MulticloudLink_ocid> where all { request.operation != 'CreateAutonomousContainerDatabase', request.operation != 'CreateAutonomousDatabase', request.operation != 'CreateAutonomousDatabaseBackup', request.operation != 'CreateAutonomousVmCluster', request.operation != 'CreateBackup', request.operation != 'CreateBackupDestination', request.operation != 'CreateCloudAutonomousVmCluster', request.operation != 'CreateCloudExadataInfrastructure', request.operation != 'CreateCloudVmCluster', request.operation != 'CreateDatabase', request.operation != 'CreateDatabaseSoftwareImage', request.operation != 'CreateDbHome', request.operation != 'CreateExadataInfrastructure', request.operation != 'CreateExternalBackupJob', request.operation != 'CreateExternalContainerDatabase', request.operation != 'CreateExternalDatabaseConnector', request.operation != 'CreateExternalPluggableDatabase', request.operation != 'CreatePluggableDatabase', request.operation != 'CreateVmCluster', request.operation != 'CreateVmClusterNetwork' }
Allow group odbaa-exa-cdb-administrators to manage db-homes in compartment id <MulticloudLink_ocid> where request.operation != 'CreateDbHome'
Allow group odbaa-exa-cdb-administrators to manage databases in compartment id <MulticloudLink_ocid> where request.operation != 'CreateDatabase'
Allow group odbaa-exa-cdb-administrators to manage db-backups in compartment id <MulticloudLink_ocid>
Allow group odbaa-exa-pdb-administrators to manage
pluggable-databases in compartment id <MulticloudLink_ocid> where request.operation != 'CreatePluggableDatabase'
|
- ベース・データベースの作成
- ベース・データベースの変更
- ベース・データベースの削除
|
Azure |
データベース管理者 |
組込みロール: Oracle.Database DBSystems管理者{
"id": "/....",
"type": "Microsoft.Authorization/roleDefinitions",
"roleType": "CustomRole",
"roleName": "Oracle.Database DbSystems Administrator",
"description": "Grants full access to manage DbSystems resources",
"assignableScopes": ["..."],
"actions": [
"Oracle.Database/dbSystems/*/read",
"Oracle.Database/dbSystems/*/write",
"Oracle.Database/dbSystems/*/delete",
"Oracle.Database/Locations/*/read",
"Oracle.Database/Locations/*/write",
"Oracle.Database/Operations/read",
"Oracle.Database/oracleSubscriptions/*/read",
"Oracle.Database/oracleSubscriptions/*/action",
"Oracle.Database/resourceAnchors/*",
"Oracle.Database/networkAnchors/*",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/virtualNetworks/subnets/write",
"Microsoft.Network/locations/*/read",
"Microsoft.Compute/sshPublicKeys/read",
"Microsoft.Compute/sshPublicKeys/write",
"Microsoft.Compute/sshPublicKeys/generateKeyPair/action",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/deployments/*"
],
"notActions": [
],
"dataActions": [
],
"notDataActions": [
]
}
|
- ベース・データベースの作成
- ベース・データベースの変更
- ベース・データベースの削除
|
OCI |
データベース管理者
|
組込みグループ: ユーザーがOCIテナンシ管理者でない場合は、OCI IAMの次のグループの一部である必要があります:
odbaa-db-systems-administrators
カスタム・ポリシー: Allow group odbaa-db-systems-administrators to inspect tag-namespaces in tenancy
Allow group odbaa-db-systems-administrators to use tag-namespaces in tenancy where target.tag-namespace.name = 'Multicloud'
Allow group odbaa-db-systems-administrators to read multicloud-configurations in tenancy
Allow group odbaa-db-systems-administrators to {WORKREQUEST_INSPECT} in compartment id BASE_COMPARTMENT_ID
define tenancy orpServiceProdTenancy as <ORP_SERVICE_TENANCY_OCID>
endorse group odbaa-db-systems-administrators, odbaa-db-family-administrators to use cluster-placement-groups in tenancy orpServiceProdTenancy
define tenancy cpg_service as ODBAA_CPG_SERVICE_TENANCY_ID
endorse group odbaa-db-systems-administrators to use cluster-placement-groups in tenancy cpg_service where all {request.operation in ('LaunchDbSystem')}
Allow group odbaa-db-systems-administrators to use multicloud-network-anchors in compartment id BASE_COMPARTMENT_ID
Allow group odbaa-db-systems-administrators to read multicloud-resource-anchors in compartment id BASE_COMPARTMENT_ID
Allow group odbaa-db-systems-administrators to read odbaa-configurations in tenancy
Allow group odbaa-db-systems-administrators to manage db-systems in compartment id BASE_COMPARTMENT_ID
Allow group odbaa-db-systems-administrators to manage db-nodes in compartment id BASE_COMPARTMENT_ID
Allow group odbaa-db-systems-administrators to manage db-homes in compartment id BASE_COMPARTMENT_ID
Allow group odbaa-db-systems-administrators to manage databases in compartment id BASE_COMPARTMENT_ID
Allow group odbaa-db-systems-administrators to manage db-backups in compartment id BASE_COMPARTMENT_ID
Allow group odbaa-db-systems-administrators to manage pluggable-databases in compartment id BASE_COMPARTMENT_ID
Allow group odbaa-db-systems-administrators to { MULTICLOUDLINK_READ, MULTICLOUD_NETWORK_LINK_READ } in compartment id BASE_COMPARTMENT_ID
2025年9月15日より前にプロビジョニングされた既存のOracle Database@Azureテナンシにベース・データベースを作成する場合は、OCIテナンシに次の2つのポリシーを追加します。
define tenancy orpServiceProdTenancy as <ORP_SERVICE_TENANCY_OCID>
endorse group odbaa-db-systems-administrators, odbaa-db-family-administrators to use cluster-placement-groups in tenancy orpServiceProdTenancy
|
- GoldenGateデプロイメントの作成
- GoldenGateデプロイメントの変更
- GoldenGateデプロイメントの削除
|
OCI |
インフラストラクチャ管理者およびデータベース管理者
|
組込みグループ: ユーザーがOCIテナンシ管理者でない場合は、OCI IAMの次のグループの一部である必要があります:
odbaa-goldengate-administrators
2025年10月7日より後にプロビジョニングされた既存のOracle Database@AzureテナンシにGoldenGateを作成している場合、事前作成ロールが自動的に作成されます。既存のOCIテナンシの場合、グループを明示的に作成する必要があります。ステップは次のとおりです。
- グループ
odbaa-goldengate-administratorsを作成し、そのOCIDをコピーします。
- MulticloudLink_ODBAA_202xxxxxxxxxというタイトルのコンパートメントの名前をコピーします。
- ポリシーMulticloudLink_ODBAA_GoldenGate_System_Policyを作成し、次のポリシー・ステートメントを追加します:
- (GOLDENGATE_GROUP_OCID_GOES_HEREおよびBASE_COMPARTMENT_GOES_HERE値を置き換えます)
カスタム・ポリシー: Define group odbaa-goldengate-administrators as GOLDENGATE_GROUP_OCID_GOES_HERE
Define tenancy orp_service_prod as ocid1.tenancy.oc1..aaaaaaaayjet4no5xjbjbvedmylzosti4ifmyrqatm6li77t3lpzmufqeagq
Endorse group odbaa-goldengate-administrators to use cluster-placement-groups in tenancy orp_service_prod
Allow group odbaa-goldengate-administrators to use organizations-assigned-subscription in tenancy WHERE ALL {target.subscription.serviceName = 'ORACLEDBATAZURE'}
Allow group odbaa-goldengate-administrators to read organizations-assigned-subscription in tenancy
Allow group odbaa-goldengate-administrators to read limits in tenancy
Allow group odbaa-goldengate-administrators to { MULTICLOUD_CONFIGURATION_READ } in tenancy
Allow group odbaa-goldengate-administrators to { ORGANIZATIONS_SUBSCRIPTION_READ, ORGANIZATIONS_SUBSCRIPTION_INSPECT } in tenancy
Allow group odbaa-goldengate-administrators to manage goldengate-family in compartment BASE_COMPARTMENT_GOES_HERE
Allow group odbaa-goldengate-administrators to manage virtual-network-family in compartment BASE_COMPARTMENT_GOES_HERE
Allow group odbaa-goldengate-administrators to { COMPARTMENT_INSPECT } in compartment BASE_COMPARTMENT_GOES_HERE
Allow group odbaa-goldengate-administrators to { MULTICLOUD_CONFIGURATION_INSPECT } in compartment BASE_COMPARTMENT_GOES_HERE
Allow group odbaa-goldengate-administrators to { MULTICLOUD_RESOURCE_ANCHOR_INSPECT, MULTICLOUD_RESOURCE_ANCHOR_READ } in compartment BASE_COMPARTMENT_GOES_HERE
Allow group odbaa-goldengate-administrators to { MULTICLOUD_NETWORK_ANCHOR_INSPECT, MULTICLOUD_NETWORK_ANCHOR_READ, ODBAA_NETWORK_ANCHOR_INSPECT, ODBAA_NETWORK_ANCHOR_UPDATE } in compartment BASE_COMPARTMENT_GOES_HERE
Allow group odbaa-goldengate-administrators to { MULTICLOUDLINK_INSPECT, MULTICLOUDLINK_READ } in compartment BASE_COMPARTMENT_GOES_HERE
Allow group odbaa-goldengate-administrators to { MULTICLOUD_NETWORK_LINK_INSPECT, MULTICLOUD_NETWORK_LINK_READ } in compartment BASE_COMPARTMENT_GOES_HERE
Allow group odbaa-goldengate-administrators to { MULTICLOUD_NETWORK_LINK_ATTACHMENT_INSPECT, MULTICLOUD_NETWORK_LINK_ATTACHMENT_READ, MULTICLOUD_NETWORK_LINK_ATTACHMENT_CREATE, MULTICLOUD_NETWORK_LINK_ATTACHMENT_UPDATE } in compartment BASE_COMPARTMENT_GOES_HERE
Allow service goldengate to manage tagnamespace in compartment BASE_COMPARTMENT_GOES_HERE
自動化:
- Cloud Shellを開き、次のスクリプトをOCI管理者としてコピーします。このスクリプトは、必要なIAMポリシーとともにロール
odbaa-goldengate-administratorsの作成を自動化します。#!/bin/bash
#
# Usage:
# ./goldengate_iam_cloud_shell.sh
#
# Example:
# ./goldengate_iam_cloud_shell.sh
#
# Enable strict mode to exit on any error.
set -euo pipefail
# input OCI profile name, default is DEFAULT
function get_home_region_name() {
local OCI_TENANCY=$1
local cli_output=$(oci iam tenancy get --tenancy-id ${OCI_TENANCY} | jq -r '.data."home-region-key"')
local VAR_HOME_REGION_KEY=${cli_output}
cli_output=$(oci iam region list --all | jq -r --arg VAR_HOME_REGION_KEY ${VAR_HOME_REGION_KEY} '.data[] | select(.key == $VAR_HOME_REGION_KEY) | .name')
echo $cli_output
}
function get_iam_compartment_name() {
local OCI_TENANCY=$1
local cli_output=$(oci iam compartment list --compartment-id ${OCI_TENANCY} --all | jq -r '[.data[] | select(.name | startswith("MulticloudLink_ODBAA_"))] | sort_by(.name) | reverse | .[0].name')
echo ${cli_output}
}
function get_iam_group_info_by_name() {
local OCI_TENANCY=$1
local VAR_GROUP_NAME=$2
local cli_output=$(oci iam group list --compartment-id ${OCI_TENANCY} --all | jq -r --arg VAR_GROUP_NAME ${VAR_GROUP_NAME} '.data[] | select(.name == $VAR_GROUP_NAME) | {name: .name, id: .id}')
echo ${cli_output}
}
function create_iam_group() {
local VAR_OCI_HOME_REGION=$1
local OCI_TENANCY=$2
local VAR_IAM_GROUP_NAME=$3
local VAR_IAM_GROUP_DESCRIPTION=$4
# Create the policy
local cli_output=$(oci iam group create --region ${VAR_OCI_HOME_REGION} --compartment-id ${OCI_TENANCY} --name ${VAR_IAM_GROUP_NAME} --description ${VAR_IAM_GROUP_DESCRIPTION} | jq -r '.data | {name: .name, id: .id}')
echo ${cli_output}
}
function check_if_goldengateDB_policy_exist() {
local OCI_TENANCY=$1
local VAR_POLICY_NAME=$2
echo "Checking whether POLICY $VAR_POLICY_NAME exists in $OCI_TENANCY..."
local VAR_FOUND_POLICY_NAME=$(oci iam policy list --compartment-id ${OCI_TENANCY} --all | jq -r --arg VAR_POLICY_NAME ${VAR_POLICY_NAME} '.data[] | select(.name == $VAR_POLICY_NAME) | .name')
if [ "$VAR_FOUND_POLICY_NAME" == "$VAR_POLICY_NAME" ]; then
return 0
fi
return -1
}
function create_goldengate_policy() {
local VAR_OCI_HOME_REGION=$1
local OCI_TENANCY=$2
local VAR_MULTICLOUDLINK_ODBAA_COMPARTMENT=$3
local VAR_ODBAA_GOLDENGATE_ADMINISTRATORS_GROUP_OCID=$4
local VAR_ORP_SERVICE_PROD_OCID="ocid1.tenancy.oc1..aaaaaaaayjet4no5xjbjbvedmylzosti4ifmyrqatm6li77t3lpzmufqeagq"
local VAR_POLICY_NAME="MulticloudLink_ODBAA_GoldenGate_System_Policy"
local VAR_POLICY_DESCRIPTION="Policies to grant execution rights for all operations on GoldenGate resources"
if check_if_goldengateDB_policy_exist $OCI_TENANCY $VAR_POLICY_NAME; then
echo "INFO: Policy with name $VAR_POLICY_NAME already exist, skipped creation"
return 0
fi
echo ""
echo "Creating policy ${VAR_POLICY_NAME} for: "
echo " Tenancy OCID: ${OCI_TENANCY}"
echo " MulticloudLink_ODBAA_YYYYMMDD compartment: ${VAR_MULTICLOUDLINK_ODBAA_COMPARTMENT}"
echo " odbaa-goldengate-administrators group OCID: ${VAR_ODBAA_GOLDENGATE_ADMINISTRATORS_GROUP_OCID}"
echo ""
local VAR_ORACLEDBATAZURE="'ORACLEDBATAZURE'"
local VAR_POLICY_STATEMENTS='[
"Define group odbaa-goldengate-administrators as {VAR_ODBAA_GOLDENGATE_ADMINISTRATORS_GROUP_OCID}",
"Define tenancy orp_service_prod as {VAR_ORP_SERVICE_PROD_OCID}",
"Endorse group odbaa-goldengate-administrators to use cluster-placement-groups in tenancy orp_service_prod",
"Allow group odbaa-goldengate-administrators to use organizations-assigned-subscription in tenancy WHERE ALL {target.subscription.serviceName = {VAR_ORACLEDBATAZURE}}",
"Allow group odbaa-goldengate-administrators to read organizations-assigned-subscription in tenancy",
"Allow group odbaa-goldengate-administrators to read limits in tenancy",
"Allow group odbaa-goldengate-administrators to { MULTICLOUD_CONFIGURATION_READ } in tenancy",
"Allow group odbaa-goldengate-administrators to { ORGANIZATIONS_SUBSCRIPTION_READ, ORGANIZATIONS_SUBSCRIPTION_INSPECT } in tenancy",
"Allow group odbaa-goldengate-administrators to manage goldengate-family in compartment {VAR_MULTICLOUDLINK_ODBAA_COMPARTMENT}",
"Allow group odbaa-goldengate-administrators to manage virtual-network-family in compartment {VAR_MULTICLOUDLINK_ODBAA_COMPARTMENT}",
"Allow group odbaa-goldengate-administrators to { COMPARTMENT_INSPECT } in compartment {VAR_MULTICLOUDLINK_ODBAA_COMPARTMENT}",
"Allow group odbaa-goldengate-administrators to { MULTICLOUD_CONFIGURATION_INSPECT } in compartment {VAR_MULTICLOUDLINK_ODBAA_COMPARTMENT}",
"Allow group odbaa-goldengate-administrators to { MULTICLOUD_RESOURCE_ANCHOR_INSPECT, MULTICLOUD_RESOURCE_ANCHOR_READ } in compartment {VAR_MULTICLOUDLINK_ODBAA_COMPARTMENT}",
"Allow group odbaa-goldengate-administrators to { MULTICLOUD_NETWORK_ANCHOR_INSPECT, MULTICLOUD_NETWORK_ANCHOR_READ, ODBAA_NETWORK_ANCHOR_INSPECT, ODBAA_NETWORK_ANCHOR_UPDATE } in compartment {VAR_MULTICLOUDLINK_ODBAA_COMPARTMENT}",
"Allow group odbaa-goldengate-administrators to { MULTICLOUDLINK_INSPECT, MULTICLOUDLINK_READ } in compartment {VAR_MULTICLOUDLINK_ODBAA_COMPARTMENT}",
"Allow group odbaa-goldengate-administrators to { MULTICLOUD_NETWORK_LINK_INSPECT, MULTICLOUD_NETWORK_LINK_READ } in compartment {VAR_MULTICLOUDLINK_ODBAA_COMPARTMENT}",
"Allow group odbaa-goldengate-administrators to { MULTICLOUD_NETWORK_LINK_ATTACHMENT_INSPECT, MULTICLOUD_NETWORK_LINK_ATTACHMENT_READ, MULTICLOUD_NETWORK_LINK_ATTACHMENT_CREATE, MULTICLOUD_NETWORK_LINK_ATTACHMENT_UPDATE } in compartment {VAR_MULTICLOUDLINK_ODBAA_COMPARTMENT}",
"Allow group odbaa-goldengate-administrators to read autonomous-database-family in compartment {VAR_MULTICLOUDLINK_ODBAA_COMPARTMENT}",
"Allow service goldengate to manage tagnamespace in compartment {VAR_MULTICLOUDLINK_ODBAA_COMPARTMENT}"
]'
VAR_POLICY_STATEMENTS=$(
echo "${VAR_POLICY_STATEMENTS}" | \
sed "s/{VAR_ODBAA_GOLDENGATE_ADMINISTRATORS_GROUP_OCID}/${VAR_ODBAA_GOLDENGATE_ADMINISTRATORS_GROUP_OCID}/" | \
sed "s/{VAR_ORP_SERVICE_PROD_OCID}/${VAR_ORP_SERVICE_PROD_OCID}/" | \
sed "s/{VAR_MULTICLOUDLINK_ODBAA_COMPARTMENT}/${VAR_MULTICLOUDLINK_ODBAA_COMPARTMENT}/" | \
sed "s/{VAR_ORACLEDBATAZURE}/${VAR_ORACLEDBATAZURE}/"
)
echo "Rendering policy: $VAR_POLICY_STATEMENTS"
# Create the policy
local cli_output=$(oci iam policy create \
--region ${VAR_OCI_HOME_REGION} \
--compartment-id ${OCI_TENANCY} \
--name ${VAR_POLICY_NAME} \
--description "${VAR_POLICY_DESCRIPTION}" \
--statements "${VAR_POLICY_STATEMENTS}" \
| jq -r '.data | {name: .name, id: .id}')
echo "Policy created: ${cli_output}"
}
function main() {
echo "Started"
local VAR_OCI_HOME_REGION=$(get_home_region_name $OCI_TENANCY)
echo "Home region: $VAR_OCI_HOME_REGION"
# check if multicloud linked compartment exists
local VAR_FOUND_COMPARTMENT_NAME=$(get_iam_compartment_name $OCI_TENANCY)
if [[ "$VAR_FOUND_COMPARTMENT_NAME" == "MulticloudLink_ODBAA_"* ]]; then
echo "Found compartment with name $VAR_FOUND_COMPARTMENT_NAME"
else
echo "Compartment with name matching MulticloudLink_ODBAA_* can't be found. Check if cloud linking succeeded"
return -1
fi
VAR_MULTICLOUDLINK_ODBAA_COMPARTMENT=$VAR_FOUND_COMPARTMENT_NAME
# check if group exists
local VAR_ODBAA_GOLDENGATE_ADMINISTRATORS_GROUP_NAME="odbaa-goldengate-administrators"
local VAR_ODBAA_GOLDENGATE_ADMINISTRATORS_GROUP_DESC="Oracle GoldenGate Systems Administrators"
local VAR_FOUND_GROUP_INFO=$(get_iam_group_info_by_name $OCI_TENANCY $VAR_ODBAA_GOLDENGATE_ADMINISTRATORS_GROUP_NAME)
if [ "$(echo ${VAR_FOUND_GROUP_INFO} | jq -r '.name')" == "$VAR_ODBAA_GOLDENGATE_ADMINISTRATORS_GROUP_NAME" ]; then
# skip creation
echo "Found group info $VAR_FOUND_GROUP_INFO, skipped creation"
else
echo "Creating IAM group ${VAR_ODBAA_GOLDENGATE_ADMINISTRATORS_GROUP_NAME} in tenancy: ${OCI_TENANCY}"
# group does not exist so create new
local VAR_CREATED_GROUP_INFO=$(create_iam_group $VAR_OCI_HOME_REGION $OCI_TENANCY $VAR_ODBAA_GOLDENGATE_ADMINISTRATORS_GROUP_NAME $VAR_ODBAA_GOLDENGATE_ADMINISTRATORS_GROUP_DESC)
if [ "$(echo ${VAR_CREATED_GROUP_INFO} | jq -r '.name')" == "$VAR_ODBAA_GOLDENGATE_ADMINISTRATORS_GROUP_NAME" ]; then
echo "Group created $VAR_CREATED_GROUP_INFO"
VAR_FOUND_GROUP_INFO=$VAR_CREATED_GROUP_INFO
else
echo "Can't create group $VAR_ODBAA_GOLDENGATE_ADMINISTRATORS_GROUP_NAME. Check permissions."
return -1
fi
fi
local VAR_ODBAA_GOLDENGATE_ADMINISTRATORS_GROUP_OCID=$(echo ${VAR_FOUND_GROUP_INFO} | jq -r '.id')
create_goldengate_policy $VAR_OCI_HOME_REGION $OCI_TENANCY $VAR_MULTICLOUDLINK_ODBAA_COMPARTMENT $VAR_ODBAA_GOLDENGATE_ADMINISTRATORS_GROUP_OCID
echo "DONE!"
}
main
- GoldenGateデプロイメントまたは接続UIを使用してボールトにシークレットを作成できるようにするには、ユーザーが次の権限を持つグループの一部である必要があります:
allow group odbaa-goldengate-administrators to manage secret-family in compartment BASE_COMPARTMENT_GOES_HERE
allow group odbaa-goldengate-administrators to manage vaults in compartment BASE_COMPARTMENT_GOES_HERE
allow group odbaa-goldengate-administrators to manage keys in compartment BASE_COMPARTMENT_GOES_HERE
- 動的グループを作成して、定義されたルールに基づいてリソースに権限を付与し、GoldenGateデプロイメントまたはパイプライン(あるいはその両方)がテナンシ内のリソースにアクセスできるようにします。動的グループは必要な数だけ作成できます。たとえば、様々なコンパートメントまたはテナンシにわたるデプロイメントの権限を制御できます。
name: goldengate-deployments
Matching rule: ALL {resource.type = 'goldengatedeployment', resource.compartment.id = '<location>'}
- シークレットを使用するには、次のポリシーをこのグループに追加します。
allow dynamic-group goldengate-deployments to use keys in tenancy
allow dynamic-group goldengate-deployments to use vaults in tenancy
allow dynamic-group goldengate-deployments to read secret-bundles in tenancy
|
| Vaultの設定 |
OCI |
インフラストラクチャ管理者およびデータベース管理者
|
最初にVaultを設定していることを確認します。Vaultサービスの詳細。
|