すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:オブジェクトのアクセス権限の管理 (Browser.js SDK)

最終更新日:Nov 30, 2025

OSS では、オブジェクトにアクセス権限を設定して、そのアクセス方法を制御できます。

注意事項

  • Webpack や Browserify などのパッケージングツールを使用する場合、npm install ali-oss コマンドを実行して OSS SDK for Browser.js をインストールします。

  • ブラウザから OSS バケットにアクセスする際に、そのバケットに CORS ルールが設定されていない場合、ブラウザはリクエストを拒否します。そのため、ブラウザからバケットにアクセスするには、CORS ルールを設定する必要があります。詳細については、「インストール」をご参照ください。

  • ほとんどの場合、OSS SDK for Browser.js はブラウザで使用されます。AccessKey ペアの漏洩を防ぐため、Security Token Service (STS) から取得した一時的なアクセス認証情報を使用して OSS にアクセスすることを推奨します。

    一時的なアクセス認証情報は、AccessKey ペアとセキュリティトークンで構成されます。AccessKey ペアは、AccessKey ID と AccessKey Secret で構成されます。一時的なアクセス認証情報の取得方法の詳細については、「STS を使用した一時的なアクセス権限付与」をご参照ください。

読み取り/書き込み権限の種類

オブジェクトには、次の 4 種類のアクセス制御リスト (ACL) があります:

説明

オブジェクトのアクセス権限は、そのバケットのアクセス権限よりも優先されます。たとえば、バケットが非公開であっても、その中のオブジェクトが公開読み取りの場合、匿名ユーザーを含む誰でもそのオブジェクトを読み取ることができます。

権限の種類

説明

権限の値

バケットから継承 (デフォルト)

オブジェクトに独自のアクセス権限が設定されていない場合、そのバケットの ACL を継承します。オブジェクトはバケットと同じ権限を持ちます。

default

非公開

オブジェクト所有者のみがオブジェクトの読み書きを行えます。他のユーザーはオブジェクトにアクセスできません。

private

公開読み取り

オブジェクト所有者のみがオブジェクトへの書き込みを行えます。匿名ユーザーを含む誰でもオブジェクトを読み取ることができます。

警告

インターネット上のすべてのユーザーがオブジェクトにアクセスできるため、データ漏洩や料金の急増につながる可能性があります。この権限は慎重に使用してください。

public-read

公開読み書き

匿名ユーザーを含む誰でもオブジェクトの読み書きを行えます。

警告

インターネット上のすべてのユーザーがオブジェクトにアクセスしてデータを書き込めるため、データ漏洩や料金の急増につながる可能性があります。悪意のあるユーザーが不正な情報をオブジェクトに書き込んだ場合、法的な権利や利益が損なわれる可能性があります。特定のシナリオを除き、公開読み書き権限は設定しないでください。

public-read-write

サンプルコード

オブジェクトをアップロードすると、その ACL はデフォルトでバケットの ACL を継承します。putACL を使用して、オブジェクトの ACL を変更できます。

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
  </head>
  <body>
    <script src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"></script>
    <script>
      const client = new OSS({
        // バケットが所在するリージョンを設定します。たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを oss-cn-hangzhou に設定します。
        region: "yourRegion",
        authorizationV4: true,
        // Security Token Service (STS) から取得した一時的な AccessKey ペア (AccessKey ID と AccessKey Secret)。
        accessKeyId: "yourAccessKeyId",
        accessKeySecret: "yourAccessKeySecret",
        // STS から取得したセキュリティトークン (SecurityToken)。
        stsToken: "yourSecurityToken",
        // バケット名を指定します。例:examplebucket。
        bucket: "examplebucket",
      });

      async function getACL() {
        try {
          result = await client.getACL("examplefile.txt");
          console.log(result.acl);

          await client.putACL("examplefile.txt", "public-read");
          result = await client.getACL("examplefile.txt");
          console.log(result.acl);
        } catch (e) {
          console.log(e);
        }
      }

      getACL();
    </script>
  </body>
</html>

関連ドキュメント

  • オブジェクトのアクセス権限に関する完全なサンプルコードについては、「GitHub の例」をご参照ください。

  • オブジェクトのアクセス権限を設定する API 操作の詳細については、「PutObjectACL」をご参照ください。

  • オブジェクトのアクセス権限を取得する API 操作の詳細については、「GetObjectACL」をご参照ください。