👻

Oracle Cloud Object StorageをS3として使う

2021/08/10に公開
  • 2019/10/10 初版
  • 2022/05/02 この手順で問題ないことを確認しました。あと少々追記

前提

  • 2019/10/10 現在の方法です。
  • Object Storage は Free Tier が 20GB あります。

参照 Qiita

https://qiita.com/kaohas/items/898efe9e5aa35f2a1402

ですが、現時点では少々手順が変わっているのでメモ

バケットの作成

バケットの作成自体は特におもしろい事はないので省略しますが、参考記事には
「バケットをルートコンパートメントに作成すること」 と書かれているのでその通りにしました。
バケット一覧の画面で(ルート)と書かれていれば問題ないでしょう。

2022/05/02 追記 ルートコンパートメントである必要はありません。少なくともコンパートメントを移動しても問題ありませんでした。

アクセスキーの作成

ここが参照 Qiita と異なっているので、メモしたかった所です。
2022/05/02 追記。テストであればこの手順でも良いと思いますが、本番等であれば次の項目の手順を行ったほうがよいと思います。

テスト用手順(管理者ユーザーの権限でアクセス)

  • アイデンティティ → ユーザー から自分のユーザーを選ぶ。 メールアドレスが ID になっているものを選択しました。
  • 左下のリソース欄にある 顧客秘密キー をクリックします。
  • 秘密キーを生成 ボタンをクリック
  • 名前は何でも良いので自由に付ける。

真ん中に表示されたキーは、再表示できないのでコピーして保存しておく。

アクセス・キー と書いてある部分(上記の図だと ..ec99be と書いてある部分) にマウスカーソルを乗せると、アクセスキーが表示される(コピーボタンもある)ので、コピーしておく。
62714b857ab1aef1df653bae5002a6bacdec99be のような感じの文字列である。

AWS_ACCESS_KEY_ID=62714b857ab1aef1df653bae5002a6bacdec99be (例)

AWS_SECRET_ACCESS_KEY=最後が = で終わる生成時にしか表示されない文字列

IAMユーザーを作成して権限を割り当てる

(書きかけ)
ユーザーとグループにはコンパートメントはありませんが、Policyはコンパートメントに属します。

  • アイデンティティ → ユーザー から Create User ボタンを押し、IAM Userを選択して任意のID等を入力してユーザーを作成する。

  • アイデンティティ → グループ から Create Group ボタンを押して、適当な名前のグループを作る(よくわからないけれども、次のPolicyがグループにしか付与できないため

  • グループに先程作成したIAMユーザーを追加する

  • Policy で、任意の名前のpolicyを作成する。

  • そのまま、Policy Builderを使って、Let users write objects to Object Storage BucketsLet users download objects from Object Storage Buckets を追加

  • このままだとバケット内のobjectの削除ができないので、必要であれば、作成したpolicyを選択して Edit Policy Statements を押して、Statement 2 の末尾に request.permission='OBJECT_DELETE' を追記する。

あとは、ユーザーを作った場合と同様に IAMユーザーの 顧客秘密キー を作成してアクセスキーとシークレットキーとして使用すれば良い。

オブジェクトストレージネームスペースの取得

  • コンソールの右上の、ユーザーのアイコンが表示されている部分をクリックし、 テナンシ: <テナント名> というリンクをクリック
  • 表示された画面の中央に表示されている、 オブジェクト・ストレージ・ネームスペース という ID が必要になるのでコピーする。

S3 互換 URL の取得

今まで取得した情報を組み合わせて、アクセス用 URL を組み立てる

https://ネームスペース.compat.objectstorage.リージョン.oraclecloud.com

  • ネームスペースは、上記で取得したオブジェクト・ストレージ・ネームスペース
  • リージョンは、コンソールの URL を見てください。 console.ap-tokyo-1.oraclecloud.com なら ap-tokyo-1 がリージョンです
  • アクセスキー、アクセスシークレットは上記で取得したものを使ってください

蛇足

この内容が判明するまで

検索しまくったり色々として 2 時間くらいをツブしました。。がっくり。
Classic な話とか、旧バージョンとかで操作が大分違うようで、大混乱しました。

オブジェクトストレージネームスペース

オブジェクトストレージネームスペースは、とりあえず テナント名 を入れて接続して、(繋がるには繋がります)

適当にフォルダを作る操作などをすると、エラーメッセージの中に入っている・・・が、普通に拾っても面倒ではないので本当に蛇足。

Discussion