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>: リソース・タイプへの特定のレベルのアクセス権をグループに付与します。動詞がinspectreadusemanageと進むにつれて、アクセス権のレベルが高くなり、付与された権限は累積します。

    権限と動詞の関係についてさらに学習します。

  • <resource-type>: 付与するグループ権限で作業できるリソースのタイプ。goldengate-deploymentsgoldengate-pipelinesgoldengate-connectionsなどの個別のリソースがあり、goldengate-family (前述の個々のリソースを含む)などのリソース·ファミリがあります

    詳細は、リソース・タイプを参照してください。

  • <location>: ポリシーをコンパートメントまたはテナンシにアタッチします。名前またはOCIDで単一のコンパートメントまたはコンパートメント・パスを指定するか、tenancyを指定してテナンシ全体を対象とします。
  • <condition>: オプション。このポリシーが適用される1つ以上の条件。

ポリシー構文の詳細を参照してください。

ポリシーの作成方法

ポリシーを作成するには:
  1. Oracle Cloudのナビゲーション・メニューで、「アイデンティティとセキュリティ」を選択し、「識別」で「ポリシー」をクリックします。
  2. 「ポリシー」ページで、「ポリシーの作成」をクリックします。
  3. ポリシーの作成ページで、ポリシーの名前および説明を入力します。
  4. このポリシーを作成するコンパートメントを選択します。
  5. 「ポリシー・ビルダー」セクションで、次のいずれかを実行できます
    • 「ポリシー・ユース・ケース」ドロップダウンから「GoldenGateサービス」を選択し、共通ポリシー・テンプレート(ユーザーがGoldenGateリソースを管理できるようにするために必要なポリシーなど)を選択します。
    • 「手動エディタの表示」をクリックして、ポリシー・ルールを次の形式で入力します:
      allow <subject> to <verb> <resource-type> in <location> where <condition>

      条件はオプションです。動詞+リソース・タイプの組合せの詳細を参照してください。

    ヒント:

    詳細は、最小推奨ポリシーを参照してください。
  6. 「作成」をクリックします

ポリシーの詳細は、ポリシーの仕組みポリシー構文およびポリシー・リファレンスを参照してください。

最小限の推奨ポリシー

ヒント:

共通ポリシー・テンプレートを使用して必要なすべてのポリシーを追加するには:
  1. 「ポリシーのユース・ケース」で、ドロップダウンから「GoldenGateサービス」を選択します。
  2. 「一般的なテンプレートの使用」で、ドロップダウンから「ユーザーが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>

    オプションで、粒度の細かいポリシーの組合せを使用して、ネットワーク・リソースをさらに保護できます。ネットワーク・リソースを保護するためのポリシーの例を参照してください。

  • 動的グループの作成: 定義されたルールに基づいてリソースに権限を付与し、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>
  • 手動のOCI GoldenGateバックアップを格納するためのOracle Object Storage。例:
    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>
  • Load Balancer(デプロイメント・コンソールへのパブリック・アクセスを有効にする場合):
    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)。Required only If you've added security attributes to your VCN and/or Load Balancer to control access for your connections and public deployments, add the following policies to allow public internet traffic to the load balancer and traffic flow between the load balancer and private endpoints:
    • 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>

定義済のタグを追加するには、タグ・ネームスペースを使用する権限が必要です。タグ付けの詳細は、リソース・タグを参照してください。

詳細および追加のポリシーの例は、OCI GoldenGateポリシーを参照してください。

ネットワーク・リソースを保護するためのポリシーの例

ポリシーを使用して、コンパートメント内のネットワーク・リソースへのユーザー・アクセスを簡単に許可できます:

allow group <group-name> to use virtual-network-family in compartment <compartment-name>

または、次のポリシーを使用して、より詳細なレベルでネットワーク・リソースを保護することもできます:

操作 基礎となるリソースへの必要なアクセス
プライベート・エンドポイントの作成 プライベート・エンドポイント・コンパートメントの場合:
  • VNICの作成(VNIC_CREATE)
  • VNICの削除(VNIC_DELETE)
  • ネットワーク・セキュリティ・グループのメンバーの更新(NETWORK_SECURITY_GROUP_UPDATE_MEMBERS)
  • ネットワーク・セキュリティ・グループの関連付け(VNIC_ASSOCIATE_NETWORK_SECURITY_GROUP)

サブネット・コンパートメントの場合:

  • サブネットのアタッチ(SUBNET_ATTACH)
  • サブネットのデタッチ(SUBNET_DETACH)
プライベート・エンドポイントの更新 プライベート・エンドポイント・コンパートメントの場合:
  • VNICの更新(VNIC_UPDATE)
  • ネットワーク・セキュリティ・グループのメンバーの更新(NETWORK_SECURITY_GROUP_UPDATE_MEMBERS)
  • ネットワーク・セキュリティ・グループの関連付け(VNIC_ASSOCIATE_NETWORK_SECURITY_GROUP)
プライベート・エンドポイントの削除 プライベート・エンドポイント・コンパートメントの場合:
  • VNICの削除(VNIC_DELETE)
  • ネットワーク・セキュリティ・グループのメンバーの更新(NETWORK_SECURITY_GROUP_UPDATE_MEMBERS)

サブネット・コンパートメントの場合:

  • サブネットのデタッチ(SUBNET_DETACH)
プライベート・エンドポイント・コンパートメントの変更 あるコンパートメントから別のコンパートメントに移動する場合、元のコンパートメントのすべての権限が新しいコンパートメントにも存在する必要があります。

リソース・タイプ

Oracle Cloud Infrastructure GoldenGateには、ポリシーを記述するための集約リソース・タイプと個別リソース・タイプの両方が用意されています。

集約リソース・タイプ 個別リソース・タイプ
goldengate-family

goldengate-deployments

goldengate-deployment-backups

goldengate-deployment-upgrades

goldengate-connections

goldengate-connection-assignments

goldengate-pipelines

集約リソース・タイプ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からreadusemanageの順に累積します。

goldengate-deployments

goldengate-connections

goldengate-connection-assignments

goldengate-deployment-backups

API操作ごとに必要な権限

Oracle Cloud Infrastructure GoldenGateのAPI操作を論理的な順序でリソース・タイプ別にグループ化したリストを次に示します。

リソース・タイプは、goldengate-deploymentsgoldengate-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