テナンシをまたがるDNSリソースの管理
テナンシが他のテナンシのDNSリソースにアクセスできるようにするIAMポリシーを作成します。
ポリシーを初めて使用する場合は、ポリシーの開始およびDNSポリシー・リファレンスを参照してください。
クロステナンシ・ポリシー
組織は、独自のテナントを持つ別の組織とリソースを共有する場合があります。これは、会社内の別のビジネス・ユニット、会社の顧客、別の会社にサービスを提供する会社などの場合があります。このような場合、すでに説明されている必要なユーザー・ポリシーおよびサービス・ポリシーに加えて、クロステナンシ・ポリシーが必要です。
リソースにアクセスして共有するには、両方のテナンシの管理者は、アクセスと共有が可能なリソースを明示的に示す特別なIAMポリシー・ステートメントを作成する必要があります。
Endorse、AdmitおよびDefineステートメント
クロステナンシ・ステートメントで使用される特別な動詞の概要は次のとおりです:
- 承認: 1つのテナント内のグループが他のテナント内で実行できる一般的な機能セットを示します。承認ステートメントは、テナンシのリソースを使用する他のテナンシに対して境界を超えるユーザーのグループのテナンシに常に属します。この例では、このテナンシをソースと呼びます。
- 許可: 別のテナンシのグループに付与するテナンシ内の機能の種類を示します。許可ステートメントは、テナンシに「許可」したテナンシに属します。許可ステートメントは、ソース・テナンシからのリソース・アクセスを必要とし、対応する承認ステートメントで特定されるユーザーのグループを識別します。この例では、このテナンシを宛先と呼びます。
-
定義: 承認および許可ポリシー・ステートメントのテナンシOCIDに別名を割り当てます。許可ステートメントのソースIAMグループOCIDに別名を割り当てるには、宛先テナンシに定義ステートメントも必要です。
定義ステートメントは、承認または許可ステートメントと同じポリシー・エンティティに含める必要があります。
承認および許可ステートメントは連携して動作しますが、それぞれのテナンシの別々のポリシーに存在します。アクセス権を指定する対応ステートメントがない場合、特定の承認または許可ステートメントはアクセス権を与えません。両方のテナンシから合意が必要です。
ポリシー・ステートメントに加えて、リージョン間でリソースを共有するためにリージョンにサブスクライブする必要もあります。
ソース・テナンシのポリシー・ステートメント
ソース・テナントの管理者は、宛先テナンシでリソースを管理できるIAMグループを承認するポリシー・ステートメントを作成します。
IAMグループDNSAdminsがテナンシ内のすべてのDNSリソースに対してすべての操作を実行することを承認する広範なポリシー・ステートメントの例を次に示します:
Endorse group DNSAdmins to manage DNS in any-tenancy
テナンシ・アクセスの範囲を狭くするポリシーを記述するには、宛先管理者が宛先テナンシOCIDを指定する必要があります。次の例は、IAMグループのDNSAdminsグループがDestinationTenancyのDNSリソースのみを管理することを承認するポリシー・ステートメントを示しています:
Define tenancy DestinationTenancy as ocid1.tenancy.oc1..<unique_ID>
Endorse group DNSAdmins to manage dns in tenancy DestinationTenancy
宛先テナンシのポリシー・ステートメント
宛先管理者は、次のポリシー・ステートメントを作成します:
- 別のテナンシのリソースへのアクセスを許可されるソース・テナンシおよびIAMグループを定義します。ソース管理者がこの情報を提供する必要があります。
- ローカル・テナンシでアクセスを許可するDNSリソースにアクセスするために、定義済のソースを許可します。
ソース・テナンシのIAMグループDNSAdminsがローカル・テナンシ内のすべてのDNSリソースに対してすべての操作を実行することを許可するポリシー・ステートメントの例を次に示します:
Define tenancy SourceTenancy as ocid1.tenancy.oc1..<unique_ID>
Define group DNSAdmins as ocid1.group.oc1..<unique_ID>
Admit group DNSAdmins of tenancy SourceTenancy to manage dns in tenancy
次の例は、ソース・テナンシのIAMグループのDNSAdminsがSharedZonesコンパートメントのDNSリソースのみを管理することを承認するポリシー・ステートメントを示しています:
Define tenancy SourceTenancy as ocid1.tenancy.oc1..<unique_ID>
Define group DNSAdmins as ocid1.group.oc1..<unique_ID>
Admit group DNSAdmins of tenancy SourceTenancy to manage dns in compartment SharedZones
例: 親ゾーンとは異なるテナンシに子ゾーンを作成するには
次の例は、子ゾーンが親ゾーンとは異なるテナンシに存在する、一般的に使用されるシナリオを示しています:
define tenancy ChildZoneTenancy as ocid1.tenancy.oc1..<child_zone_tenancy_unique_ID>
define group ChildZoneGroup as ocid1.group.oc1..<child_zone_group_unique_ID>
admit group ChildZoneGroup of tenancy ChildZoneTenancy to manage dns-records in tenancy where all {target.dns-zone.name = '<example.com>', target.dns-record.type = 'NS', target.dns-domain.name = '<child.example.com>'}
admit group ChildZoneGroup of tenancy ChildZoneTenancy to associate dns-records in tenancy with dns-zones in tenancy ChildZoneTenancy
define tenancy ParentZoneTenancy as ocid1.tenancy.oc1..<parent_zone_tenancy_unique_ID>
endorse group ChildZoneGroup to manage dns-records in tenancy ParentZoneTenancy where target.dns-zone.name = '<example.com>'
endorse group ChildZoneGroup to associate dns-zones in tenancy with dns-records in tenancy ParentZoneTenancy
例: 既存の子ゾーンとは異なるテナントに親ゾーンを作成するには
1つ以上の子ゾーン(child.example.com
)が他のテナンシにすでに存在する場合に親ゾーン(example.com
)を作成するには、親ゾーン・テナンシのユーザーに、存在する子ゾーンを削除する権限が必要です。
親ゾーン・テナンシ・ポリシー:
define tenancy ChildZoneTenancy as ocid1.tenancy.oc1..<child_zone_tenancy_unique_ID>
endorse group ParentTenancyGroup to manage dns-zones in tenancy ChildZoneTenancy where target.dns-zone.name = '<child.example.com>'
子ゾーン・テナンシ・ポリシー:
define tenancy ParentZoneTenancy as ocid1.tenancy.oc1..<parent_zone_tenancy_unique_ID>
define group ParentTenancyGroup as ocid1.group.oc1..<unique_ID> admit group ParentTenancyGroup to manage dns-zones in tenancy ChildZoneTenancy
where target.dns-zone.name = '<child.example.com>'
子ゾーンが多くのテナンシに存在する場合は、テナンシごとにポリシーのセットを作成します。
テナント間で機能するためにポリシー・ステートメントを必要とするDNS操作
次の表に、テナント間で機能するために許可および承認ポリシー・ステートメントを必要とするDNS操作を示します。ユース・ケースごとに、ソースおよび宛先テナンシに対して少なくともリストされているユーザー権限またはグループ権限が必要です。
宛先 | ソース・テナンシの権限 | 宛先テナンシの権限 |
---|---|---|
異なるテナンシにビューがあるプライベート・ゾーンを作成します | DNS_ZONE_CREATE | DNS_VIEW_INSPECT |
異なるテナンシにTSIGキーがあるゾーンを作成します | DNS_ZONE_CREATE | DNS_TSIG_KEY_READ |
親ゾーンとは異なるテナンシに子ゾーンを作成します。 | DNS_ZONE_CREATE | DNS_RECORD_UPDATE |
親ゾーンとは異なるテナンシにTSIGキーがある子ゾーンを作成します。 |
DNS_ZONE_CREATE DNS_TSIG_KEY_READ (TSIGキーがソース・テナンシにある場合。) |
DNS_RECORD_UPDATE DNS_TSIG_KEY_READ (TSIGキーが宛先テナンシにある場合。) |
異なるテナンシにTSIGキーがあるゾーンを更新します | DNS_ZONE_UPDATE | DNS_TSIG_KEY_READ |
異なるテナンシのステアリング・ポリシーに対するゾーンのアタッチメントを作成します | DNS_ZONE_UPDATE | DNS_STEERING_POLICY_READ |
異なるテナンシのステアリング・ポリシーに対するゾーンのアタッチメントを更新します | DNS_ZONE_UPDATE | DNS_STEERING_POLICY_READ |
異なるテナンシのステアリング・ポリシーに対するゾーンからアタッチメントを削除します | DNS_ZONE_UPDATE | DNS_STEERING_POLICY_READ |
異なるテナンシに関連ビューがあるリゾルバ情報を更新します | DNS_RESOLVER_UPDATE | DNS_VIEW_INSPECT |