パブリック・アクセスの許可
データは共有するためのものであることがあります。 バケットには、学術研究や民間の研究用に公開されたデータ・セット、または Web アプリケーションやコンテンツ配信ネットワークによって使用されるイメージ・リポジトリーが保持されることがあります。 **「パブリック・アクセス」**グループを使用して、このようなバケットにアクセスできるようにします。
バケットへのパブリック・アクセスに使用できる IAM 役割には、 Administrator、 ContentReader、および ObjectReader の 3 つがあります。 これらの違いは、 Administrator と ContentReader がバケット内のオブジェクトをリストできることです。これは、オブジェクトの読み取りに加えて、リストを簡単にする必要があるアプリケーション
(Web UI など) に役立ちます。 詳しくは、 IAM リファレンス資料 を参照してください。
外部ID分離(EII)が Limited に設定されている場合、匿名要求にはアカウント IDがなく、ID照合要件を満たすことができないため、公開アクセスは失敗する。
コンソールを使用したパブリック・アクセスの設定
最初に、バケットがあることを確認します。 ない場合は、入門チュートリアルの手順に従って、コンソールについて理解してください。
パブリック・アクセスの有効化
バケットでパブリックアクセスを有効にするには、まずアカウントレベルで「 パブリックアクセス 」グループを有効にする必要があります。 この設定を変更できるのは、 アカウント所有者、または「 IAM アクセスグループ管理者 」ロールを持つユーザーのみです。 これを確認または有効にするには、 「管理」>「アクセス(IAM)」>「設定 」に移動し、「 パブリックアクセス」が 「 有効 」に設定されていることを確認してください。 このアカウントの設定が無効になっている場合、後述するバケットレベルの制御は適用されません。
- IBM Cloud コンソール・ダッシュボードから、**「ストレージ」**を選択してリソース・リストを表示します。
- 次に、**「ストレージ」**メニュー内から、バケットがあるサービス・インスタンスを選択します。 これによって Object Storage コンソールが表示されます。
- パブリックにアクセス可能にするバケットを選択します。 このポリシーにより、 バケット内のすべてのオブジェクトは、適切な URL を持つユーザーであれば誰でもダウンロードできるようになることにご留意ください。
- バケットのナビゲーションタブから「 権限 」タブを選択します。
- 「 パブリックアクセス 」セクションまでスクロールし、「 アクセスポリシーの作成 」をクリックします。
- 警告を読んだ後、**「有効化」**を選択します。
- これで、このバケット内のすべてのオブジェクトにパブリックでアクセス可能になりました。
パブリック・アクセスの無効化
- IBM Cloud コンソール内の任意の場所から、**「管理」メニュー、「アクセス (IAM)」**を順番に選択します。
- ナビゲーション・メニューから**「アクセス・グループ」**を選択します。
- **「パブリック・アクセス」**を選択して、現在使用中のすべてのパブリック・アクセス・ポリシーのリストを表示します。
- アクセス制御の適用対象に戻す必要があるバケットに対応するポリシーを見つけます。
- ポリシー項目の右端にあるアクションのリストから、**「削除」**を選択します。
- ダイアログ・ボックスを確認します。これで、ポリシーはバケットから削除されます。
個々のオブジェクトに対するパブリック・アクセスの許可
REST API を使用してオブジェクトをパブリック・アクセス可能にするには、x-amz-acl: public-read ヘッダーを要求に組み込むことができます。 このヘッダーを設定すると、あらゆる IAM ポリシーの検査がバイパスされ、非認証の HEAD 要求および
GET 要求が許可されます。 エンドポイントについて詳しくは、エンドポイントおよびストレージ・ロケーションを参照してください。
さらに、HMAC 資格情報により、事前署名 URL を使用する一時的なパブリック・アクセスを許可できます。
パブリック・オブジェクトのアップロード
curl -X "PUT" "https://{endpoint}/{bucket-name}/{object-name}" \
-H "x-amz-acl: public-read" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: text/plain; charset=utf-8" \
-d "{object-contents}"
既存のオブジェクトに対するパブリック・アクセスの許可
ペイロードなしで照会パラメーター ?acl を使用するとともに、x-amz-acl: public-read ヘッダーを設定すると、データを上書きすることなく、オブジェクトへのパブリック・アクセスが可能になります。
curl -X "PUT" "https://{endpoint}/{bucket-name}/{object-name}?acl" \
-H "x-amz-acl: public-read" \
-H "Authorization: Bearer {token}"
パブリック・オブジェクトを再度プライベートにする
ペイロードなしで照会パラメーター ?acl を使用するとともに、空の x-amz-acl: ヘッダーを設定すると、データを上書きすることなく、オブジェクトへのパブリック・アクセスが取り消されます。
curl -X "PUT" "https://{endpoint}/{bucket-name}/{object-name}?acl" \
-H "Authorization: Bearer {token}" \
-H "x-amz-acl:"
静的 Web サイト
IBM Cloud Object Storage では、静的ウェブサイトの自動ホスティングはサポートされていませんが、Webサーバーを手動で設定し、バケットにホストされている一般公開用のコンテンツを配信することは可能です。 詳しくは、 静的 Web サイト・オプションの概要 を参照してください。