Oracle NoSQL Database Cloud Service表へのアクセスの管理
ポリシーの記述と、Oracle NoSQL Database Cloud Service表へのアクセスを認可するために使用する一般的なポリシー・ステートメントの表示について学習します。
この記事には次のトピックが含まれます:
テナント全体のNoSQL表へのアクセス
このトピックでは、テナンシが他のテナント内のNoSQL表へのアクセスを許可するポリシーを記述する方法について説明します。
ポリシーを初めて使用する場合は、ポリシーの開始に関する項を参照してください。
クロステナンシ・ポリシー
組織は、独自のテナントを持つ別の組織とリソースを共有する場合があります。これは、会社内の別のビジネス・ユニット、会社の顧客、会社にサービスを提供する会社などの場合があります。このような場合、前述の必須ユーザーとサービス・ポリシーに加えてクロステナンシ・ポリシーが必要です。
リソースにアクセスして共有するには、両方のテナンの管理者は、アクセスと共有が可能なリソースを明示的に示す特別なポリシー・ステートメントを作成する必要があります。これらの特別なステートメントは、[定義]、[承認]および [許可]という言葉を使用します。
承認、許可および定義ステートメント
クロステナンシ・ステートメントで使用される特別な動詞の概要は次のとおりです:
承認:独自のテナンシ内のグループが他のテナント内で実行できる一般的な機能セットを示します。エンドース・ステートメントは、テナンシのリソースを使用する他のテナンシに対して境界を超えるユーザーのグループのテナンシに属します。例では、このテナントをソースと呼んでいます。
Admit:他のテナントからグループに付与する、自分のテナンシでの機能の種類を示します。Admitステートメントは、テナンシに「アドミタンス」を付与するテナントに属します。Admitステートメントは、ソース・テナントからのリソース・アクセスを必要とし、対応するエンドース・ステートメントで特定されるユーザーのグループを識別します。例では、このテナントを宛先と呼びます。
定義:エンドース・ポリシー・ステートメントおよび許可ポリシー・ステートメントのテナントOCIDに別名を割り当てます。許可ステートメントのソースIAMグループOCIDに別名を割り当てるには、宛先テナンシに定義ステートメントも必要です。
ノート:
ポリシー・ステートメントに加えて、リージョン間でリソースを共有するためにリージョンにサブスクライブする必要もあります。ソース・テナント・ポリシー・ステートメント
ノート:
クロステナンシ・ポリシーは、他のポリシー・サブジェクトとともに記述することもできます。ポリシーのサブジェクトの詳細は、Oracle Cloud Infrastructureドキュメントのポリシー構文を参照してください。Endorse group NoSQLAdmins to manage nosql-family in any-tenancy
Define tenancy DestinationTenancy as ocid1.tenancy.oc1..<destination_tenancy_OCID>
Endorse group NoSQLAdmins to manage nosql-family in tenancy DestinationTenancy
宛先テナンシのポリシー・ステートメント
- ソース・テナントおよびテナンシのリソースにアクセスできるIAMグループを定義します。ソース管理者がこの情報を提供する必要があります。
- テナントでアクセスを許可するNoSQL表にアクセスするために、定義済のソースを許可します。
Define tenancy SourceTenancy as ocid1.tenancy.oc1..<source_tenancy_OCID>
Define group NoSQLAdmins as ocid1.group.oc1..<group_OCID>
Admit group NoSQLAdmins of tenancy SourceTenancy to manage nosql-family in tenancy
Define tenancy SourceTenancy as ocid1.tenancy.oc1..<source_tenancy_OCID>
Define group NoSQLAdmins as ocid1.group.oc1..<group_OCID>
Admit group NoSQLAdmins of tenancy SourceTenancy to manage nosql-family in compartment Develop
NoSQL表を管理する別のユーザー権限の付与
Oracle NoSQL Database Cloud Serviceのオーダーをアクティブ化すると、あなた(最初のユーザー)はデフォルトでAdministratorsグループに含まれます。Administratorsグループに含まれると、Oracle NoSQL Database Cloud Service表などを管理できるようにOracle Cloud Infrastructureで完全な管理権限が付与されます。この責任を委任する必要はありませんが、必要に応じて、Oracle NoSQL Database Cloud Service表を作成および管理する権限を、manage nosql-tables
権限を通じて他のユーザーに付与できます。
Oracle Cloud Infrastructureでは、IAMセキュリティ・ポリシーを使用して権限を付与します。最初にユーザーをグループに追加し、次に特定のコンパートメントまたはテナンシ(テナント内のすべてのコンパートメント)に対するmanage nosql-tables
権限をグループに付与するセキュリティ・ポリシーを作成する必要があります。たとえば、次のようなポリシー・ステートメントを作成できます:
allow group MyAdminGroup to manage nosql-tables in tenancy
allow group MyAdminGroup to manage nosql-tables in compartment MyOracleNoSQL
Oracle NoSQL Database Cloud Service専用のセキュリティ・ポリシー・ステートメントを作成する方法の詳細は、アイデンティティおよびアクセス管理を使用したユーザー、グループおよびポリシーの設定を参照してください。
表を管理するための一般的なポリシー文
Oracle NoSQL Database Cloud Service表へのアクセスを認可するために使用する一般的なポリシー・ステートメントを次に示します。
テナンシのポリシーを作成する場合、ポリシー継承によってすべてのコンパートメントへのアクセス権をユーザーに付与します。または、個々のOracle NoSQL Database Cloud Service表またはコンパートメントへのアクセスを制限できます。
例- グループAdminsがOracle NoSQL Database Cloud Service表を完全に管理できるようにするには
allow group Administrators to manage nosql-tables in tenancy
allow group Administrators to manage nosql-rows in tenancy
allow group Administrators to manage nosql-indexes in tenancy
例- グループAdminsがコンパートメントDevのNoSQL表に対して操作を実行できるようにするには、ファミリ・リソース・タイプを使用します。
allow group Admins to manage nosql-family in compartment Dev
例- グループAnalyticsがコンパートメントDevのNoSQL表に対して読取り専用操作を実行できるようにするため
allow group Analytics to read nosql-rows in compartment Dev
例- DeveloperのJoeのみが、コンパートメントDevのNoSQL表の索引を作成、取得および削除できるようにするには
allow group Developer to manage nosql-indexes in compartment Dev
where request.user.id = '<OCID of Joe>'
例- グループAdminsがNoSQL表の作成、削除および移動のみを許可し、コンパートメントDevでは変更できません。
allow group Admins to manage nosql-tables in compartment Dev
where any {request.permission = 'NOSQL_TABLE_CREATE',
request.permission = 'NOSQL_TABLE_DROP',
request.permission = 'NOSQL_TABLE_MOVE'}
例- グループDeveloperはコンパートメントDevの表"customer"の行の読取り、更新および削除を実行できるが、他のグループはできないようにするには
allow group Developer to manage nosql-rows in compartment Dev
where target.nosql-table.name = 'customer'