クロステナンシ・アソシエーション・ポリシー

組織では、別のテナンシのプライベート・エンドポイントを参照する接続をテナンシに作成したり、別のテナンシの接続で独自のプライベート・エンドポイントを使用することもできます。

IAMグループがこのようなクロス・テナンシ接続を作成できるようにするには、テナンシ管理者が特別な「クロス・テナンシ・アソシエーション」ポリシー・ステートメントを記述する必要があります。これらの文は、通常のクロステナンシ・ポリシー・ステートメントと同様にEndorseおよびAdmit動詞を使用しますが、あるタイプのリソースに対してreaduseなどのアクションを実行する権限を付与するかわりに、2つのタイプのリソースを相互に関連付けする権限を付与します。

クロステナンシ・アソシエーション文

クロステナンシ・アソシエーション・ポリシー・ステートメントが必要です:

  • グループが、接続と同じテナンシにないプライベート・エンドポイントを参照する接続を作成する場合、またはそのような参照を行うために既存の接続を更新する場合。
  • 通常必要なクロステナンシ・ポリシー・ステートメントに加えて。たとえば、グループとは異なるテナンシにある場合、グループでプライベート・エンドポイントを使用できるようにするには、クロステナンシ文が必要です。
  • 特定のリソース・ペアに対してのみ。データベース・ツールに必要なのは、接続およびプライベート・エンドポイントの場合のみです。これらは、接続やボールト・シークレットなど、相互に参照できるリソースのすべてのペアには必要ありません

接続が作成されると、それらを使用するためにクロステナンシ・アソシエーション・ポリシーは不要になります。接続の使用および参照されるシークレットの読取り権限を持つユーザーは、接続を使用できます。

次の例では、グループおよび接続を持つテナンシをグループ・テナンシ、およびプライベート・エンドポイントを持つテナンシをリソース・テナンシと呼びます。

これは、クロステナンシ・アソシエーション・ポリシー・ステートメントが必要な構成の例です。接続は、参照するプライベート・エンドポイントとは異なるテナンシで作成されます。

この図は、参照するプライベート・エンドポイントとは異なるテナンシで接続が作成される構成を示しています。

グループ・テナンシにシークレットを含めることも、接続およびプライベート・エンドポイントを切り替えることもできます。接続とプライベート・エンドポイントが同じテナンシ内に一緒に存在する場合、クロステナンシ・アソシエーション・ポリシーは必要ありません。

グループ・テナンシのポリシー・ステートメント

グループ・テナンシ管理者は、次のポリシー・ステートメントを作成します:

  • リソース・テナンシの別名を定義します。リソース・テナンシ管理者は、リソース・テナンシのOCIDを指定する必要があります。
  • テナンシ内のIAMグループをエンドースして、テナンシまたはコンパートメント内の接続をリソース・テナンシのプライベート・エンドポイントに関連付けます。

リソース・テナンシのリソースにアクセスするためにグループを承認するために必要な通常のクロス・テナンシ・ポリシー・ステートメントを含めることもできます。

次に、IAMグループDatabaseToolsConnectionManagersを承認して、グループ・テナンシ・コンパートメントConnectionsCompartment内の接続をResourceTenancy内のプライベート・エンドポイントに関連付けるポリシー・ステートメントの例を示します。また、グループに対してシークレットの読取りおよびResourceTenancyのプライベート・エンドポイントの使用が承認されます:

Define tenancy ResourceTenancy as <resource_tenancy_ocid>

Endorse group DatabaseToolsConnectionManagers to associate database-tools-connections in compartment ConnectionsCompartment with database-tools-private-endpoints in tenancy ResourceTenancy

Endorse group DatabaseToolsConnectionManagers to read secret-family in tenancy ResourceTenancy

Endorse group DatabaseToolsConnectionManagers to use database-tools-private-endpoints in tenancy ResourceTenancy

リソース・テナンシのポリシー・ステートメント

リソース・テナンシ管理者は、次のポリシー・ステートメントを作成します:

  • グループ・テナンシの別名と、テナンシのリソースにアクセスできるIAMグループの別名を定義します。グループ・テナンシ管理者は、グループ・テナンシおよびグループのOCIDsを指定する必要があります。
  • グループを認め、グループ・テナンシ内の接続をテナンシまたはコンパートメント内のプライベート・エンドポイントに関連付けます。

また、グループにテナンシ内のリソースへのアクセスを許可するために必要な通常のクロステナンシ・ポリシー・ステートメントを含めることもできます。

次に、グループ・テナンシのIAMグループDatabaseToolsConnectionManagersが、GroupTenancy内の接続をリソース・テナンシ・コンパートメントPrivateEndpointsCompartment内のプライベート・エンドポイントに関連付けることを許可するポリシー・ステートメントの例を示します。また、グループでシークレットを読み取り、PrivateEndpointsCompartmentでプライベート・エンドポイントを使用することも許可します:

Define tenancy GroupTenancy as <group_tenancy_ocid>

Define group DatabaseToolsConnectionManagers as <database_tools_connection_managers_group_ocid>

Admit group DatabaseToolsConnectionManagers of tenancy GroupTenancy to 
associate database-tools-connections in tenancy GroupTenancy with 
database-tools-private-endpoints in compartment PrivateEndpointsCompartment

Admit group DatabaseToolsConnectionManagers of tenancy GroupTenancy to read 
secret-family in compartment PrivateEndpointsCompartment

Admit group DatabaseToolsConnectionManagers of tenancy GroupTenancy to use 
database-tools-private-endpoints in compartment PrivateEndpointsCompartment

3つのテナンシあり

IAMグループは、3番目のテナンシにも配置できます。グループがGroupTenancyというテナンシにあり、接続がConnectionTenancyというテナンシにあり、プライベート・エンドポイントがPrivateEndpointsTenancyというテナンシにあるとします。

3つのテナンシがあるため、3つのクロステナンシ・アソシエーション・ポリシー・ステートメントが必要です。追加のDefine文の他に、GroupTenancyにはEndorse文が必要で、ConnectionTenancyおよびPrivateEndpointsTenancyにはそれぞれAdmit文が必要です。

これは、3つのテナンシを含む可能性のある構成の例です。グループ、接続およびプライベート・エンドポイントはすべて個別のテナンシにあります。その他の可能な構成では、他のテナンシの1つまたは4番目のテナンシのシークレットを持つことができますが、接続およびシークレットにはクロステナンシ・アソシエーション・ポリシーは不要です。

この図は、グループ、接続およびプライベート・エンドポイントが異なるテナンシにある構成を示しています。

次に、テナンシDatabaseToolsConnectionManagersのIAMグループを承認し、ConnectionTenancy内の接続をPrivateEndpointTenancyのプライベート・エンドポイントに関連付けるGroupTenancyのポリシー・ステートメントの例を示します。また、ConnectionTenancyで接続を管理し、シークレットを読み取り、PrivateEndpointTenancyでプライベート・エンドポイントを使用するグループも承認します:

Define tenancy ConnectionTenancy as <connection_tenancy_ocid>

Define tenancy PrivateEndpointTenancy as <private_endpoint_tenancy_ocid>

Endorse group DatabaseToolsConnectionManagers to associate 
database-tools-connections in tenancy ConnectionTenancy with 
database-tools-private-endpoints in tenancy PrivateEndpointTenancy

Endorse group DatabaseToolsConnectionManagers to manage 
database-tools-connections in tenancy ConnectionTenancy

Endorse group DatabaseToolsConnectionManagers to read secret-family 
in tenancy PrivateEndpointTenancy

Endorse group DatabaseToolsConnectionManagers to use 
database-tools-private-endpoints in tenancy PrivateEndpointTenancy

次に、DatabaseToolsConnectionManagersをエンドースしてテナンシ内の接続をPrivateEndpointTenancy内のプライベート・エンドポイントに関連付けるConnectionTenancyのポリシー・ステートメントの例を示します。また、グループでConnectionsCompartmentというコンパートメント内の接続を管理することも許可されます:

Define tenancy GroupTenancy as <group_tenancy_ocid>

Define tenancy PrivateEndpointTenancy as <private_endpoint_tenancy_ocid>

Admit group DatabaseToolsConnectionManagers of tenancy GroupTenancy to 
associate database-tools-connections in tenancy with 
database-tools-private-endpoints in tenancy PrivateEndpointTenancy

Admit group DatabaseToolsConnectionManagers of tenancy GroupTenancy to manage 
database-tools-connections in compartment ConnectionsCompartment

次に、DatabaseToolsConnectionManagersをエンドースしてConnectionTenancy内の接続をテナンシのプライベート・エンドポイントに関連付けるPrivateEndpointTenancyのポリシー・ステートメントの例を示します。また、グループはシークレットを読み取り、PrivateEndpointsCompartmentというコンパートメントでプライベート・エンドポイントを使用することを許可します:

Define tenancy GroupTenancy as <group_tenancy_ocid>

Define tenancy ConnectionTenancy as <connection_tenancy_ocid>

Admit group DatabaseToolsConnectionManagers of tenancy GroupTenancy to 
associate database-tools-connections in tenancy ConnectionTenancy 
with database-tools-private-endpoints in tenancy

Admit group DatabaseToolsConnectionManagers of tenancy GroupTenancy to read 
secret-family in compartment PrivateEndpointsCompartment

Admit group DatabaseToolsConnectionManagers of tenancy GroupTenancy to use 
database-tools-private-endpoints in compartment PrivateEndpointsCompartment