この記事でやっていること
- Oracle Cloud Infrastructure のObject Storageのobjectを別のテナンシのObject Storageへコピー
- 同一リージョン内での操作例
作業手順
- オブジェクトのコピーに必要なIAMポリシーの設定・確認
- 別のテナンシのObject Storageにアクセス・操作するためのIAMポリシーの設定・確認
- objectのコピー
1. オブジェクトのコピーに必要なIAMポリシーの設定・確認
サービス権限
コピー操作を実行する各リージョンにて「オブジェクト・ストレージ」サービスを認可する必要があります。
(コピー元、コピー先双方のテナンシで設定)
指定したリージョンのサービスを認可するポリシーを作成して、
テナンシ内のすべてのコンパートメントのオブジェクト・ストレージのネームスペース、バケットおよび関連オブジェクトを管理できる権限:
Allow service objectstorage-<region_name> to manage object-family in tenancy
操作を限定して許可する権限:
テナンシー全体
Allow service objectstorage-<region_name> to {OBJECT_READ, OBJECT_INSPECT, OBJECT_CREATE, OBJECT_OVERWRITE, OBJECT_DELETE} in tenancy
コンパートメント指定
Allow service objectstorage-<region_name> to {OBJECT_READ, OBJECT_INSPECT, OBJECT_CREATE, OBJECT_OVERWRITE, OBJECT_DELETE} in compartment <compartment_name>
ユーザ権限
コピー元、コピー先双方のテナンシでオブジェクトのコピーを実行するのに必要なアクセス権が必要です。
双方のバケットでオブジェクトを管理する権限も必要です。
管理者の場合:
指定したIAMグループがオブジェクト・ストレージのネームスペース、バケットおよび関連オブジェクトをテナンシ内のすべてのコンパートメントで管理するポリシーを作成できます:
Allow group <IAM_group_name> to manage object-family in tenancy
指定したグループにテナンシの特定コンパートメントのバケットおよびオブジェクトのみを管理させるポリシー
Allow group <IAM_group_name> to manage buckets in compartment <compartment_name>
2. 別のテナンシのObject Storageにアクセス・操作するためのIAMポリシーの設定・確認
テナンシ間でコピー操作を許可する権限の設定
コピー元テナンシ
コピー元テナンシのIAMグループ名とコピー先のテナンシのOCIDを取得し、以下のポリシーを作成
define tenancy CopyDestinationTenancy as <OCID_for_destination_tenancy>
endorse group <group_name_in_source_tenancy> to {OBJECT_READ, OBJECT_CREATE, OBJECT_OVERWRITE, OBJECT_INSPECT, OBJECT_DELETE} in tenancy CopyDestinationTenancy }}}
コピー先テナンシ
コピー元のテナンシのOCIDとコピー元のIAMグループのOCIDを取得し、以下のポリシーを作成
define tenancy CopySourceTenancy as <OCID_for_source_tenancy>
define group CopySourceGroup as <OCID_for_group_in_source_tenancy>
admit group CopySourceGroup of tenancy CopySourceTenancy to {OBJECT_READ, OBJECT_CREATE, OBJECT_OVERWRITE, OBJECT_INSPECT, OBJECT_DELETE} in tenancy }}}
3. objectのコピー
コピー元バケット画面
ネームスペース、バケット名、オブジェクト名を確認
Webコンソールの例
コピー元オブジェクトを選択し、メニューからコピーを選択
コピー先のネームスペース名、リージョン、バケット名を指定し、「オブジェクトのコピー」を押下
コピーの完了
CLIの例
oci os object copy --namespace-name nr9kylwk --bucket-name CrossTenancyRead --source-object-name crosstenancy.txt --destination-namespace nrdoltfd --destination-region ap-tokyo-1 --destination-bucket CrossTenancyCopy --destination-object-name crosstenancy.txt
さいごに
権限付与ができれば、通常操作でテナンシ間でのオブジェクトコピーができた。