edit-icon download-icon

アクセス権限の設定

最終更新日: Aug 14, 2017

OSS では、バケットとオブジェクトのアクセス権限を個別に設定し、リソースへの外部からのアクセスを簡単に制御できます。バケットで使用できるアクセス権限には、次の 3 つの種類があります。

種類 説明
公開読み書き 匿名ユーザーがバケット内のオブジェクトを作成/取得/削除できます。
公開読み取り 匿名ユーザーがバケット内のオブジェクトを取得できます。
非公開 匿名ユーザーはバケット内のオブジェクトにアクセスできません。すべてのアクセスに署名が必要です。

バケットの作成時には、デフォルトで非公開権限が適用されます。バケットの権限を設定するには putBucketACL を使用し、バケットの権限を取得するには getBucketACL を使用します。

  1. var co = require('co');
  2. var OSS = require('ali-oss')
  3. var client = new OSS({
  4. region: '<Your region>'
  5. accessKeyId: '<Your AccessKeyId>',
  6. accessKeySecret: '<Your AccessKeySecret>',
  7. bucket: '<Your bucket name>'
  8. });
  9. co(function* () {
  10. var result = yield client.getBucketACL('bucket-name');
  11. console.log(result);
  12. var result = yield client.putBucketACL('bucket-name', 'region', 'acl');
  13. console.log(result);
  14. }).catch(function (err) {
  15. console.log(err);
  16. });

オブジェクトで使用できるアクセス権限には、次の 4 つの種類があります。

種類 説明
デフォルト オブジェクトは属しているバケットのアクセス権限を継承します。つまり、オブジェクトのアクセス権限は、オブジェクトが格納されているバケットのアクセス権限と同じです。
公開読み書き 匿名ユーザーがオブジェクトを読み書きできます。
公開読み取り 匿名ユーザーがオブジェクトを読み取ることができます。
非公開 匿名ユーザーはバケット内のオブジェクトにアクセスできません。すべてのアクセスに署名が必要です。

オブジェクトの作成時には、デフォルトでデフォルト権限が適用されます。putACL を使用して、オブジェクトのアクセス権限を設定できます。

  1. var co = require('co');
  2. var OSS = require('ali-oss')
  3. var client = new OSS({
  4. region: '<Your region>'
  5. accessKeyId: '<Your AccessKeyId>',
  6. accessKeySecret: '<Your AccessKeySecret>',
  7. bucket: '<Your bucket name>'
  8. });
  9. co(function* () {
  10. var result = yield client.getACL('my-object');
  11. console.log(result.acl); // default
  12. yield client.putACL('my-object', 'public-read');
  13. var result = yield client.getACL('my-object');
  14. console.log(result.acl); // public-read
  15. }).catch(function (err) {
  16. console.log(err);
  17. });

注意:

  • オブジェクトが ACL ポリシーを使用して設定されている場合 (デフォルト以外)、オブジェクトにアクセスしたときの権限の認証では、オブジェクト ACL が優先されます。バケット ACL は無視されます。
  • 匿名アクセスが許可されている (オブジェクトの公開読み取りまたは公開読み書きが設定されている) 場合、ブラウザーを使用して直接オブジェクトにアクセスできます。たとえば、http://bucket-name.oss-cn-hangzhou.aliyuncs.com/object.jpg など指定してアクセスできます。

ACL の詳細については、「アクセス制御」を参照してください。