テストと検証

このページでは、構成された動的グループのメンバーであるVMインスタンスから直接実行できるテストの一部について説明します。読取りおよび書込みアクセスをテストする様々なコマンドを使用して、RCLONEおよびOCIFSも同様にテストする必要があります。

RCLONEテスト

この作業の一環として、バケットの保持ルールは一定期間削除されるため、rcloneのバケットへの読取りおよび書込み機能を完全にテストできます。

テストが完了すると、ルールを再確立してロックできます。テストは、アーカイブ・バケットを保持しているコンパートメント内のすべてのバケットに対するバケット読取り権限およびオブジェクト読取り権限を持つ動的グループから開始します。

構成済みのRCLONEリモートを表示するには、次のコマンドを実行します。
OS prompt> rclone config show [OCI-IP]
type = oracleobjectstorage
provider = instance_principal_auth
namespace = <tenancy-namespace>
compartment = ocid1.compartment.oc1..xxx
region = us-ashburn-1
後続のすべてのコマンドでは、構成済のオブジェクト・ストレージ環境および資格証明を参照するためにOCI-IPが必要です。ファイルをバケットに同期(コピーまたは更新)するために、狭い権限セットにはバケットの作成や削除が含まれないため、バケットはOCIコンソールを使用して事前に作成されています。次のブロックは、同期操作に続いてバケット・リストを示しています。
OS prompt> rclone sync rclone-test.txt OCI-IP:rclone-testing
OS prompt> rclone ls OCI-IP:rclone-testing 
 33 rclone-test.txt

ファイルの削除もテストできます。フィルタリングなど、使用可能なすべてのオプションについては、RCLONEのドキュメントに従ってください。

OS prompt> rclone delete OCI-IP:rclone-testing/rclone-test.txt

ポリシー変更

通常、RCLONEは操作が成功するとプロンプトに戻りますが、特定の操作の権限が欠落している場合はエラー・メッセージが表示されます。たとえば、以前に定義した権限でバケットを削除しようとすると、アクションは失敗し、次のメッセージが表示されます:
OS prompt> rclone purge OCI-IP:rclone-testing
2024/08/29 14:36:15 ERROR : : Failed to rmdir: Error returned by ObjectStorage Service. Http Status Code: 404. Error Code: BucketNotFound. Opc request id: iad-1:xxx. Message: Either the bucket named 'rclone-testing' does not exist in the namespace '<namespace>' or you are not authorized to access it
Operation Name: DeleteBucket
前述のように、動的グループに定義されているポリシー・ステートメントは、必要に応じて変更できます。たとえば、バケットの作成や削除を許可するために、次の文を追加できます。
allow dynamic-group oci-rclone-full-dg to manage buckets in compartment cis-landing-top:app-cmp where ANY {target.bucket.name =
    'rclone-testing'}
このポリシー・ステートメントを追加した後、前の操作を再試行でき、バケットが削除されます。

「OCI Object Storage」画面でブラウザを開いたままにして、各操作を検証できるようにバケットのページをリフレッシュすると便利です。

OCIFSテスト

前の項で示した例を使用して、OCIFSユーティリティは様々な方法でテストされました。動的グループおよびポリシーが設計どおりに機能すると、ポリシーを変更し、権限の編集時に変化する結果をすばやく確認できます。

権限変更のテストの一環として、OCIFSファイルシステムをアンマウントすることをお薦めします。このドキュメントでは、アンマウントの構文について説明します。

OCIFSによって提供されるキャッシュも利用でき、ソリューションの一部としてテストされました。いくつかのオプションの説明があり、そのいずれかがソリューションと連携します。

ノート:

自動マウントを使用すると、cache-reuseおよびcache-keepオプションを使用しないかぎりキャッシュが削除されるため、OCIFSキャッシュに影響する可能性があります。

次の例は、OCIFSを使用したマウントポイントの作成およびバケットへの接続を示しています:

root OS prompt# mkdir /mnt/read-bucket
root OS prompt# ocifs --auth=instance_principal read-bucket /mnt/read-bucket/
root OS prompt# cd /mnt/read-bucket
root OS prompt# ls -al
total 0
drwxr-xr-x. 2 root root 6 Nov 6 14:56 .
drwxr-xr-x. 5 root root 68 Nov 6 14:56 ..
-rw-r--r--. 1 root root 4 Nov 6 14:57 file.txt
制限された権限のテストとして、このVMにはこのバケットからファイルを削除する機能がありません。次のようなエラーが発生します。
root OS prompt# rm file.txt
rm: remove regular file 'file.txt'? y
rm: cannot remove file.txt': Input/output error

追加のバケット、動的グループ定義およびポリシー・ステートメントによるさらなるテストを実行できます。変更とテストの間を1分または2分にして、権限を伝播できるようにします。