テナンシをまたがったオブジェクト・ストレージ・リソースへのアクセス
他のテナンシのオブジェクト・ストレージ・リソースへのテナンシ・アクセス権を付与するポリシーの書込み方法について学習します。
ポリシーを初めて使用する場合は、アイデンティティ・ドメインの管理およびオブジェクト・ストレージ、アーカイブ・ストレージおよびデータ転送の詳細を参照してください。
クロステナンシ・ポリシー
組織が、独自のテナンシを持つ別の組織とリソースを共有する場合もあります。これは、会社内の別のビジネス・ユニット、会社の顧客、会社にサービスを提供する会社などの場合があります。このような場合、前述の必須ユーザーとサービス・ポリシーに加えて、クロステナンシ・ポリシーが必要です。
リソースにアクセスして共有するには、両方のテナンシの管理者は、アクセスと共有が可能なリソースを明示的に示す特別なポリシー・ステートメントを作成する必要があります。これらの特別なステートメントは、Define、EndorseおよびAdmitという語句を使用します。
Endorse、AdmitおよびDefineステートメント
クロステナンシ・ステートメントで使用される特別な動詞の概要は次のとおりです:
- 承認: 独自のテナンシ内のグループが他のテナンシ内で実行できる一般的な機能セットを示します。Endorseステートメントは、境界を越えて他のテナンシにアクセスし、そのテナンシのリソースを使用するユーザーのグループを含むテナンシに常に属します。例では、このテナンシをソース・テナンシと呼びます。
- 許可: 他のテナンシからグループに付与する独自のテナンシの機能の種類を示します。Admitステートメントは、テナンシへのアクセスを許可するテナンシに属します。Admitステートメントは、ソース・テナンシからのリソース・アクセスを必要とし、対応するEndorseステートメントで特定されるユーザーのグループを識別します。例では、このテナンシを宛先テナンシと呼びます。
- Define: EndorseおよびAdmitポリシー・ステートメントのテナンシOCIDに別名を割り当てます。AdmitステートメントのソースIAMグループOCIDに別名を割り当てるには、宛先テナンシにDefineステートメントも必要です。
Defineステートメントは、EndorseまたはAdmitステートメントと同じポリシー・エンティティに含めます。
EndorseステートメントとAdmitステートメントは連携して動作します。Endorseステートメントがソース・テナンシに存在するのに対し、Admitステートメントは宛先テナンシに存在します。アクセス権を指定する対応ステートメントがない場合、特定のEndorseまたはAdmitステートメントはアクセス権を与えません。両方のテナンシがアクセスに同意する必要があります。
ポリシー・ステートメントに加えて、リージョン間でリソースを共有するためにリージョンをサブスクライブする必要もあります。
ソース・テナンシのポリシー・ステートメント
ソースおよびターゲット・テナンシ管理者は、宛先テナンシでリソースを管理できるソースIAMグループを承認するポリシー・ステートメントを作成します。
次の例は、IAMグループのStorageAdminsグループが任意のテナンシ内のすべてのオブジェクト・ストレージ・リソースに対してすべての操作を実行することを承認する広範なポリシー・ステートメントを示しています:
Endorse group StorageAdmins to manage object-family in any-tenancyテナンシ・アクセスの範囲を縮小するポリシーを記述するには、ソース管理者が、宛先管理者によって指定された宛先テナンシのOCIDを参照する必要があります。次の例は、IAMグループのStorageAdminsグループがDestinationTenancyのみのオブジェクト・ストレージ・リソースを管理することを承認するポリシー・ステートメントを示しています:
Define tenancy DestinationTenancy as ocid1.tenancy.oc1..<unique_ID>
Endorse group StorageAdmins to manage object-family in tenancy DestinationTenancy
アイデンティティ・ドメインでIAMを使用する場合は、ドメインを指定します:
Endorse group '<identity_domain_name>'/'StorageAdmins' to manage object-family in any-tenancy
Define tenancy DestinationTenancy as ocid1.tenancy.oc1..<unique_ID>
Endorse group '<identity_domain_name>'/'StorageAdmins' to manage object-family in tenancy DestinationTenancy
宛先テナンシのポリシー・ステートメント
宛先管理者は、次のポリシー・ステートメントを作成します:
- ソース・テナントおよびテナント内のリソースにアクセスできるIAMグループを定義します。ソース管理者がこの情報を提供する必要があります。
- テナンシでアクセスを許可するオブジェクト・ストレージ・リソースにアクセスするために、定義済のソースを許可します。
次の例は、ソース・テナンシのIAMグループStorageAdminsがユーザーのテナンシ内のすべてのオブジェクト・ストレージ・リソースに対してすべての操作を実行することを承認するポリシー・ステートメントを示しています:
Define tenancy SourceTenancy as ocid1.tenancy.oc1..<unique_ID>
Define group StorageAdmins as ocid1.group.oc1..<unique_ID>
Admit group StorageAdmins of tenancy SourceTenancy to manage object-family in tenancy
次の例は、ソース・テナンシのIAMグループStorageAdminsがSharedBucketsコンパートメントのオブジェクト・ストレージ・リソースのみを管理することを承認するポリシー・ステートメントを示しています:
Define tenancy SourceTenancy as ocid1.tenancy.oc1..<unique_ID>
Define group StorageAdmins as ocid1.group.oc1..<unique_ID>
Admit group StorageAdmins of tenancy SourceTenancy to manage object-family in compartment SharedBuckets
Define tenancy SourceTenancy as ocid1.tenancy.oc1..<unique_ID>
Define group 'my_identity_domain_name'/'StorageAdmins' as ocid1.group.oc1..<unique_ID>
Admit group 'my_identity_domain_name'/'StorageAdmins' of tenancy SourceTenancy to manage object-family in tenancy
ソース・テナンシからの資格証明の使用
リソースへのアクセス時に、エンドース(ソース)テナンシから通常どおり資格証明を使用します。ソース・テナンシ内のユーザーは、適切な資格証明を持っている必要があります。一般的な~/.oci/configファイルは次のようになります。
[DEFAULT]
user=ocid1.user.oc1...<unique_ID>
fingerprint=<fingerprint>
tenancy=ocid1.tenancy.oc1..<unique_ID_for_source_tenancy>
region=<region>
key_file=<path_to_keyfile>
例:
[DEFAULT]
user=ocid1.user.oc1...<unique_ID>
fingerprint=<fingerprint>
tenancy=ocid1.tenancy.oc1..<unique_ID_for_source_tenancy>
region=us-ashburn-1
key_file=/home/user/.oci/oci_api_key.pem