OSS には、権限制御のためのアクセス制御リスト (ACL) が用意されています。 ACL は、ユーザーにバケットアクセス権とオブジェクトアクセス権を付与するアクセスポリシーです。 バケットの作成時やオブジェクトのアップロード時に ACL を設定できます。 バケットの作成後やオブジェクトのアップロード後も、ACL は随時変更できます。

バケット ACL

バケット ACL は、バケットへのアクセスを制御するために設定します。 次の表に示すように、バケットに対して公開読み書き、公開読み取り、非公開の 3 種類の ACL のいずれかを設定できます。
権限 説明 アクセス制限
公開読み書き 公開読み取りと書き込み すべてのユーザー (匿名ユーザーを含む) が、バケット内のオブジェクトの読み取り、書き込み、削除を実行できます。 このような操作によって発生する料金は、バケットの所有者の負担になります。 この権限を使用する際には注意してください。
公開読み取り 公開読み取りと非公開書き込み バケットの所有者だけが、バケット内のオブジェクトの書き込みや削除を実行できます。 その他のすべてのユーザー (匿名ユーザーを含む) は、バケット内のオブジェクトの読み取りのみ実行できます。
非公開 非公開の読み書き バケット内のオブジェクトの読み取り、書き込み、削除を実行できるのは、バケット所有者だけです。 その他のユーザーは、権限が付与されないとバケット内のオブジェクトにアクセスできません。
コンソール、API、SDK を使用して、バケットACL を設定および表示できます。

オブジェクト ACL

オブジェクト ACL は、オブジェクトへのアクセスを制御するために設定します。 オブジェクト ACL には、非公開、公開用読み取り、公開用読み書き、デフォルトの 4 種類の いずれかを設定できます。 PUT リクエスト内の x-oss-object-aclヘッダーを使用して、PutObjectACL 操作を実行できます。 バケット内のオブジェクトに対して PutObjectACL 操作を実行できるのは、バケットの所有者だけです。

次の表では、オブジェクトの 4 種類の ACL について説明します。
権限 説明 アクセス制限
公開読み書き込み 公開用読み取りと書き込み すべてのユーザーがオブジェクトに対して読み書きできます。
公開読み取り 公開読み取りと非公開書き込み オブジェクトの所有者だけが、オブジェクトの読み取りと書き込みを実行できます。 その他のすべてのユーザーは、オブジェクトの読み取りのみ実行できます。
非公開 非公開の読み取りと書き込み オブジェクトの所有者だけが、オブジェクトを読み書きできます。 その他のユーザーは、権限が付与されないとオブジェクトにアクセスできません。
デフォルト デフォルト ACL オブジェクトはバケットから ACL を継承します。つまり、オブジェクト ACL は、そのオブジェクトが格納されているバケットの ACL と同じになります。
  • オブジェクトに ACL が設定されていない場合、デフォルトの ACL が使用されます。これは、オブジェクトの ACL が、そのオブジェクトが格納されているバケットの ACL と同じであることを示します。
  • ACL がオブジェクトに対して設定されている場合、オブジェクト ACL が、オブジェクトの保存先のバケット ACL よりも優先度が高くなります。 たとえば、オブジェクトの ACL が公開用読み取りに設定されている場合、バケット ACL に関係なく、すべてのユーザーがそのオブジェクを読み取ることができます。
コンソール、API、SDK を使用して、オブジェクト ACL を設定および表示できます。