Oracle Cloud Object StorageをS3として使う
- 2019/10/10 初版
- 2022/05/02 この手順で問題ないことを確認しました。あと少々追記
前提
- 2019/10/10 現在の方法です。
- Object Storage は Free Tier が 20GB あります。
参照 Qiita
ですが、現時点では少々手順が変わっているのでメモ
バケットの作成
バケットの作成自体は特におもしろい事はないので省略しますが、参考記事には
「バケットをルートコンパートメントに作成すること」 と書かれているのでその通りにしました。
バケット一覧の画面で(ルート)と書かれていれば問題ないでしょう。
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 Buckets
とLet 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