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

Object Storage Service:ファイルのアクセス権限の管理 (Python SDK V1)

最終更新日:Nov 29, 2025

このトピックでは、ファイルのアクセス権限を管理する方法について説明します。

背景情報

ファイルは、次の 4 種類のアクセス制御リスト (ACL) をサポートしています:

アクセス権限

説明

ACL 値

バケットから継承

ファイルはバケットの ACL を継承します。

oss2.OBJECT_ACL_DEFAULT

非公開

ファイルの所有者と承認されたユーザーのみがファイルの読み取りおよび書き込み権限を持ちます。他のユーザーはファイルにアクセスできません。

oss2.OBJECT_ACL_PRIVATE

公開読み取り

ファイルの所有者と承認されたユーザーはファイルの読み取りおよび書き込み権限を持ちます。他のユーザーはファイルの読み取り権限のみを持ちます。この権限は注意して使用してください。

oss2.OBJECT_ACL_PUBLIC_READ

公開読み書き

すべてのユーザーがファイルの読み取りおよび書き込み権限を持ちます。この権限は注意して使用してください。

oss2.OBJECT_ACL_PUBLIC_READ_WRITE

ファイルの ACL は、バケットの ACL よりも優先されます。たとえば、バケットが非公開であっても、バケット内のファイルが公開読み書きの場合、すべてのユーザーがそのファイルの読み取りおよび書き込み権限を持ちます。ファイルに ACL がない場合、バケットの ACL が継承されます。

注意事項

  • このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。OSS と同じリージョンにある他の Alibaba Cloud サービスから OSS にアクセスする場合は、内部エンドポイントを使用してください。OSS のリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。

  • このトピックでは、アクセス認証情報は環境変数から取得されます。アクセス認証情報の設定方法の詳細については、「OSS SDK for Python 1.0 を使用したアクセス認証情報の設定」をご参照ください。

  • このトピックでは、OSS エンドポイントを使用して OSSClient インスタンスを作成します。カスタムドメイン名または Security Token Service (STS) を使用して OSSClient インスタンスを作成する場合は、「初期化」をご参照ください。

  • オブジェクトの ACL を設定するには、oss:PutObjectAcl 権限が必要です。オブジェクトの ACL をクエリするには、oss:GetObjectAcl 権限が必要です。詳細については、「RAM ユーザーへのカスタムポリシーのアタッチ」をご参照ください。

ファイルのアクセス権限の設定

オブジェクトの ACL を設定するコード例を次に示します:

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"

# バケットが配置されているリージョン (cn-hangzhou など) を指定します。このパラメーターは V4 署名に必要であることにご注意ください。
region = "cn-hangzhou"

# yourBucketName をバケットの名前に設定します。
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)

# yourObjectName をオブジェクトの完全なパスに設定します。完全なパスにバケット名を含めることはできません。
bucket.put_object_acl('yourObjectName', oss2.OBJECT_ACL_PUBLIC_READ)

ファイルのアクセス権限の取得

オブジェクトの ACL をクエリするコード例を次に示します:

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"

# バケットが配置されているリージョン (cn-hangzhou など) を指定します。このパラメーターは V4 署名に必要であることにご注意ください。
region = "cn-hangzhou"

# yourBucketName をバケットの名前に設定します。
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)

# yourObjectName をオブジェクトの完全なパスに設定します。完全なパスにバケット名を含めることはできません。
print(bucket.get_object_acl('yourObjectName').acl)

関連ドキュメント

  • ファイルのアクセス権限を設定する API 操作の詳細については、「PutObjectACL」をご参照ください。

  • ファイルのアクセス権限を取得する API 操作の詳細については、「GetObjectACL」をご参照ください。