Object Storage Service (OSS) は、アクセス制御リスト (ACL) 、RAMおよびバケットポリシー、およびリファラーホワイトリストに基づくホットリンク保護を提供し、OSSリソースへのアクセスを制御および管理します。
ACL
OSSはアクセス制御用のACLを提供します。 バケットとオブジェクトのACLを設定して、アクセスを制御できます。 バケットまたはオブジェクトのACLは、バケットの作成時またはオブジェクトのアップロード時に設定できます。 作成したバケットまたはアップロードしたオブジェクトのACLをいつでも変更できます。
バケットACL
バケットACLは、バケットへのアクセスを制御するために使用されます。 次の表に、バケットに設定できるACLを示します。
ACL
説明
アクセス制御
パブリック読み書き
パブリック読み取り /書き込み
匿名ユーザーを含むすべてのユーザーは、バケット内のオブジェクトのデータの読み取り、データの書き込み、および削除を行うことができます。 バケット所有者は、これらの操作に対して課金されます。 バケットACLを公開読み書きに設定する場合は注意してください。
警告バケットのACLをパブリック読み取り /書き込みに設定すると、すべてのユーザーがバケット内のオブジェクトにアクセスし、インターネット経由でバケットにデータを書き込むことができます。 これにより、バケット内のデータへの不正アクセスと高コストが発生する可能性があります。 ユーザーが禁止されているデータまたは情報をアップロードすると、正当な利益と権利が侵害される可能性があります。 したがって、必要がない限り、バケットのACLをpublic-read-writeに設定しないことをお勧めします。
公開読み取り
公開読み取り
バケット所有者と許可されたユーザーのみが、バケット内のオブジェクトにデータを書き込み、削除できます。 匿名ユーザーを含む他のユーザーは、バケット内のオブジェクトのみを読み取ることができます。
警告これにより、バケット内のデータに予期しないアクセスが発生し、コストが予想外に高くなる可能性があります。 バケットACLをこの値に設定するときは注意してください。
プライベート
プライベート
バケット所有者と許可されたユーザーのみが、バケット内のオブジェクトの読み取り、データの書き込み、削除を行うことができます。 他のユーザーはバケット内のオブジェクトにアクセスできません。
オブジェクトACL
オブジェクトACLは、オブジェクトへのアクセスを制御するために使用されます。 次の表に、オブジェクトに対して構成できるACLを示します。
ACL
説明
アクセス制御
パブリック読み書き
パブリック読み取り /書き込み
すべてのユーザーがオブジェクトからデータを読み書きできます。
警告オブジェクトACLをこの値に設定すると、すべてのユーザーがオブジェクトにアクセスし、インターネット経由でオブジェクトにデータを書き込むことができます。 これにより、バケット内のデータへの不正アクセスと高コストが発生する可能性があります。 ユーザーが禁止されているデータまたは情報をバケットにアップロードすると、正当な利益と権利が侵害される可能性があります。 したがって、必要がない限り、バケットのACLをpublic-read-writeに設定しないことをお勧めします。
公開読み取り
公開読み取り
オブジェクトの所有者のみが、オブジェクトに対してデータを読み書きできます。 他のユーザーはオブジェクトを読むことしかできません。
警告これにより、バケット内のデータへの不正アクセスと高コストが発生する可能性があります。 オブジェクトACLをpublic-readに設定する場合は注意してください。
プライベート
プライベート
オブジェクトの所有者のみが、オブジェクトに対してデータを読み書きできます。 他のユーザーはオブジェクトにアクセスできません。
バケットから継承
デフォルト
オブジェクトのACLは、オブジェクトが格納されているバケットのACLと同じです。
説明デフォルトでは、オブジェクトのACLはバケットから継承されます。 オブジェクトのACLは、オブジェクトが格納されているバケットのACLよりも優先されます。 たとえば、オブジェクトのACLがpublic-readに設定されている場合、バケットACLに関係なく、すべての認証済みユーザーと匿名ユーザーがオブジェクトを読み取ることができます。
詳細については、「オブジェクトACL」をご参照ください。
ユーザーに基づくRAMポリシー
RAM は、Alibaba Cloud が提供するリソースアクセス制御サービスです。 ユーザーに基づいてRAMポリシーを設定できます。 RAMポリシーでユーザーがアクセスできるリソースを指定することで、従業員、システム、アプリケーションなどのユーザーを管理するようにRAMポリシーを構成できます。 たとえば、RAMポリシーを作成して、バケット内の特定のオブジェクトに対してのみ読み取り権限をユーザーに付与できます。
RAMポリシーはJSON形式です。 ステートメントでAction、Effect、Resource、Condition要素を指定することで、RAMポリシーを設定できます。 RAMポリシーで複数のステートメントを指定すると、より効率的な方法で権限付与を管理できます。 詳細については、「OSSのシステムポリシー」および「OSSのカスタムポリシー」をご参照ください。
STSに基づく一時的なアクセス許可
RAMポリシーを使用すると、長期アクセス権限を管理できます。 ユーザーが短期間だけリソースにアクセスできるようにする場合は、Security Token Service (STS) を使用して一時的なアクセス資格情報を作成できます。 STS SDKSを使用して、環境変数からAccessKeyペアとセキュリティトークンで構成される一時的なアクセス資格情報を取得し、一時的なユーザーに送信して対応するリソースにアクセスできます。 STSを使用して取得する権限は制限されており、時間制限があります。 一時的なアクセス資格情報の漏洩は、他の資格情報の漏洩よりも低レベルのリスクを引き起こす。
STSを使用して、OSSへの一時アクセスを許可できます。 STSを使用して、管理されているサードパーティのアプリケーションまたはRAMユーザーに、カスタムの有効期間とカスタムのアクセス許可を持つ一時的なアクセス資格情報を付与できます。 詳細については、「OSSとRAMの使用」をご参照ください。
リソースに基づくバケットポリシー
バケットポリシーは、リソースベースの権限付与ポリシーです。 RAMポリシーと比較して、バケットポリシーはOSSコンソールで設定できます。 バケット所有者は、他のユーザーにOSSリソースへのアクセス権限を付与できます。
バケットポリシーを設定することで、別のAlibaba CloudアカウントのRAMユーザーにOSSリソースへのアクセスを許可したり、特定のIPアドレスの匿名ユーザーにOSSリソースへのアクセスを許可したりできます。 詳細については、「他のユーザーにOSSリソースへのアクセスを許可するバケットポリシーの設定」をご参照ください。
リファラーホワイトリストに基づくホットリンク保護
リソース使用量に基づいてOSSに対して課金されます。 バケット内のデータへの不正アクセスによる追加料金を防ぐため、HTTPおよびHTTPSリクエストのRefererフィールドに基づいてバケットのホットリンク保護を設定できます。
リファラーホワイトリストを設定して、特定のドメイン名からのリクエスト、またはリファラーヘッダーを含むHTTPおよびHTTPSリクエストのみがOSSリソースにアクセスできるようにすることができます。 ホットリンク保護により、パブリック読み取りバケットまたはパブリック読み書きバケットのデータがホットリンクされないようにして、法的権利を保護できます。 詳細については、「ホットリンク保護」をご参照ください。