Lustreポリシーを使用したファイル・ストレージ

Oracle Cloud Infrastructure Identity and Access Management (IAM)サービスを使用して、Lustreリソースを使用してファイル・ストレージのポリシーを作成します。

このトピックでは、Lustreサービスによるファイル・ストレージへのアクセスを制御するためのポリシーの書込みの詳細を説明します。詳細は、IAMポリシーの概要を参照してください。

ポリシー構文の概要

ポリシー・ステートメント全体の構文:

allow <subject> to <verb>
                    <resource-type> in <location> where <condition>
                

たとえば、次のように指定できます。

  • <subject> として、グループまたは動的グループの名前またはOCID。または、any-userを使用して、テナンシ内のすべてのユーザーを含めることができます。

  • <subject> に1つ以上の権限のアクセス権を付与するため、 <verb> として、inspectreaduseおよびmanage

    inspectreadusemanageと進むに連れて、アクセス権のレベルは一般に高くなり、付与される権限は累積されます。たとえば、useには、readに加えて更新する権限が含まれます。

  • resource-type にはリソースのファミリ(virtual-network-familyなど)。または、vcnssubnetsなど、ファミリ内の個々のリソースを指定できます。

  • <location> として、コンパートメントの名前またはOCID。または、tenancyを使用して、テナンシ全体を含めることができます。

ポリシーの作成の詳細は、ポリシーの開始およびポリシー参照を参照してください。

リソース・タイプ

Lustreリソースを使用してファイル・ストレージへのアクセス権をユーザーに付与するには、Lustreリソース・タイプを使用してファイル・ストレージでIAMポリシーを作成します。

集約リソース・タイプ

  • lustre-file-family

<verb> lustre-file-familyを使用するポリシーは、個々のリソース・タイプごとに個別の<verb> <individual resource-type>ステートメントを使用して記述することと同じです。

lustre-file-familyに含まれる個々のリソース・タイプについて、各動詞でカバーされているAPI操作の詳細は、動詞とリソース・タイプの組合せの詳細の各表を参照してください。

個別のリソース・タイプ

Lustreリソースを含むファイル・ストレージにアクセスするには、次の各リソース・タイプを使用します:

  • lustre-file-system
  • lfs-work-request

詳細は、ポリシーの例を参照してください。

サポートされる変数

File Storage with Lustreサービスは、すべての一般的な変数とここにリストされている変数をサポートしています。

OCIサービスでサポートされる一般的な変数の詳細は、すべてのリクエストの一般的な変数に関する項を参照してください。

変数変数タイプソース
target.lustre-file-system.id エンティティ(OCID)リクエスト

動詞+リソース・タイプの組合せの詳細

ポリシーの作成には、様々なOracle Cloud Infrastructure動詞とリソース・タイプを使用できます。

次の表に、各動詞のFile Storage with Lustreでカバーされている権限およびAPI操作を示します。アクセスのレベルは、inspectからreadusemanageの順に累積します。表セル内のプラス記号(+)は、その直前のセルと比較して増分アクセスを示しますが、「余分なし」は増分アクセスを示しません。

lustre-fileシステム
動詞権限完全に対象となるAPI一部カバーされたAPI
inspect

LUSTRE_FILE_SYSTEM_INSPECT

ListLustreFileSystems

なし

読取り

INSPECT +

LUSTRE_FILE_SYSTEM_READ

INSPECT +

GetLustreFileSystem

なし

使用

READ +

LUSTRE_FILE_SYSTEM_UPDATE

READ +

UpdateLustreFileSystem

なし

管理

USE +

LUSTRE_FILE_SYSTEM_CREATE

LUSTRE_FILE_SYSTEM_DELETE

LUSTRE_FILE_SYSTEM_MOVE

USE +

CreateLustreFileSystem

DeleteLustreFileSystem

ChangeLustreFileSystemCompartment

なし

lfs-work-request
動詞権限完全に対象となるAPI一部カバーされたAPI
inspect

LFS_WORK_REQUEST_INSPECT

ListWorkRequests

ListWorkRequestErrors

ListWorkRequestLogs

なし

読取り

INSPECT +

LFS_WORK_REQUEST_READ

INSPECT +

GetWorkRequest

なし

使用

READ +

なし

READ +

なし

なし

管理

USE +

LFS_WORK_REQUEST_DELETE

USE +

CancelWorkRequest

なし

API操作ごとに必要な権限

次の表は、OCI Database with PostgreSQLのAPI操作を論理的な順序で、リソース・タイプ別にグループ化したものです。

リソース・タイプは、lustre-file-systemおよびlfs-work-requestです。

権限の詳細は、権限を参照してください。

必要な権限
API操作操作の使用に必要な権限
ListLustreFileSystems LUSTRE_FILE_SYSTEM_INSPECT
GetLustreFileSystem LUSTRE_FILE_SYSTEM_READ
CreateLustreFileSystem LUSTRE_FILE_SYSTEM_CREATE
UpdateLustreFileSystem LUSTRE_FILE_SYSTEM_UPDATE
DeleteLustreFileSystem LUSTRE_FILE_SYSTEM_DELETE
ChangeLustreFileSystemCompartment LUSTRE_FILE_SYSTEM_MOVE
ListObjectStorageLinks LFS_OBJECT_STORAGE_LINK_INSPECT
GetObjectStorageLink LFS_OBJECT_STORAGE_LINK_READ
CreateObjectStorageLink LFS_OBJECT_STORAGE_LINK_CREATE
DeleteObjectStorageLink LFS_OBJECT_STORAGE_LINK_DELETE
ChangeObjectStorageLinkCompartment LFS_OBJECT_STORAGE_LINK_MOVE
ListSyncJobs LFS_OBJECT_STORAGE_LINK_INSPECT
GetSyncJob LFS_OBJECT_STORAGE_LINK_READ
StartExportToObject LFS_EXPORT_TO_OBJECT
StartImportFromObject LFS_IMPORT_FROM_OBJECT
StopExportToObject LFS_EXPORT_TO_OBJECT
StopImportFromObject LFS_IMPORT_FROM_OBJECT
ListWorkRequests LFS_WORK_REQUEST_INSPECT
GetWorkRequest LFS_WORK_REQUEST_READ
CancelWorkRequest LFS_WORK_REQUEST_DELETE
ListWorkRequestErrors LFS_WORK_REQUEST_INSPECT
ListWorkRequestLogs LFS_WORK_REQUEST_INSPECT

オブジェクト・ストレージとLustre間の双方向同期のポリシー

Lustreファイル・システムがデータをObject Storageと同期するには、その前に特定の権限を付与する必要があります。これを行うには、Lustreファイル・システムがオブジェクト・ストレージ・バケット内のオブジェクトを読み取って管理できるようにするIdentity and Access Management (IAM)ポリシーを作成します。

同期を構成するユーザーには、次の権限が必要です:
  • オブジェクト・ストレージ・バケットの表示(選択用)
  • オブジェクト・ストレージ・リンクの作成、更新および管理
  • Lustreファイル・システムでジョブを起動および停止する機能。
Lustreファイル・システムには次の権限が必要です。
  • 指定されたオブジェクト・ストレージ・バケット内のオブジェクトの読取りおよび管理(データ同期用)。

オブジェクト・ストレージ・バケットには明示的な権限は必要ありません。かわりに、オブジェクトの読取りおよび管理権限をLustreリソースに付与することで、バケットへのアクセスを制御します。

権限を割り当てる方法は次のとおりです。
  • オプション1: 動的グループを使用した権限の割当て: Lustreファイル・システムなどのリソースをグループ化するための動的グループを作成し、それらにポリシーをまとめて割り当てます。いくつか例を挙げました。
  • オプション2: Lustreファイル・システムへのアクセスの制御(動的グループなし):動的グループを設定しない場合でも、タグの有無にかかわらず、リソース・タイプの条件を使用してLustreファイル・システムへのアクセスを制御できます。いくつか例を挙げました。

ポリシーの例

次の例を使用して、ファイル・システムに必要なポリシーおよび独自のキーでファイル・システムを暗号化する場合に必要となるポリシーに加えて、共通ポリシーを作成します。

グループにファイルシステムの使用を許可するが、削除を許可しない

allow group lfsadminusers to use lustre-file-family in compartment <file_system_compartment>
                        

動的グループを使用したオブジェクト・ストレージ双方向同期ポリシー

すべてのLustreファイル・システムを含む動的グループを定義するには、次を使用します。
resource.type='lustrefilesystem'

動的グループの定義を特定のLustreコンパートメントのみに拡張するには、次を使用します:

All {resource.type = 'lustrefilesystem', resource.compartment.id = '<comp_ocid>'}

動的グループにテナンシの任意のオブジェクト・ストレージ・バケットへのアクセス権を付与するには、次を使用します:

allow dynamic-group lustre-fs-group to read buckets in tenancy
allow dynamic-group lustre-fs-group to manage objects in tenancy

テナンシ内の単一のLustreコンパートメントへのアクセス権を動的グループに付与するには、次を使用します:

allow dynamic-group lustre-fs-group to read buckets in compartment <comp id or name e.g. cell:compute-data>
allow dynamic-group lustre-fs-group to manage objects in compartment <comp id or name e.g. cell:compute-data>

動的グループを使用しないオブジェクト・ストレージ双方向同期ポリシー

コンパートメント内の任意のLustreファイル・システムにオブジェクト・ストレージ・バケットの読取りおよびコンテンツの管理を許可するには、次を使用します:
allow any-user to read buckets in compartment <comp id or name e.g. cell:compute-data> where ALL { request.principal.type = 'lustrefilesystem'}
allow any-user to manage objects in compartment <comp id or name e.g. cell:compute-data> where ALL { request.principal.type = 'lustrefilesystem'}
ノート

request.principal.type = 'lustrefilesystem'条件を削除しないでください。ユーザーや他のサービスではなく、Lustreファイル・システム・リソースへのアクセスのみを制限します。
特定のタグを持つオブジェクト・ストレージ・バケットのみに権限を制限するには、次のようにプリンシパル・タイプとタグを組み合せます:
allow any-user to read buckets in compartment <comp id or name e.g. cell:compute-data> where ALL { request.principal.type = 'lustrefilesystem' , target.bucket.tag.<tag-namespace>.<tag-key> = <"tag-value">}
allow any-user to manage objects in compartment <comp id or name e.g. cell:compute-data> where ALL { request.principal.type = 'lustrefilesystem' , target.bucket.tag.<tag-namespace>.<tag-key> = <"tag-value">}