Object Storage Service (OSS) バケットのホットリンク保護を構成して、バケット内のリソースへの不正アクセスを防止できます。 このトピックでは、referer コマンドを実行してバケットのホットリンク保護を構成する方法と、ホットリンク保護構成を変更、クエリ、および削除する方法について説明します。
使用上の注意
ホットリンク保護構成を作成または変更するには、
oss:PutBucketReferer権限が必要です。 ホットリンク保護構成をクエリするには、oss:GetBucketReferer権限が必要です。 ホットリンク保護構成を削除するには、oss:DeleteBucketReferer権限が必要です。 詳細については、「RAM ユーザーにカスタムポリシーをアタッチする」をご参照ください。
ossutil 1.6.16 以降では、コマンドラインでバイナリ名として ossutil を直接使用できます。 オペレーティングシステムに基づいてバイナリ名を更新する必要はありません。 ossutil 1.6.16 より前のバージョンでは、オペレーティングシステムに基づいてバイナリ名を更新する必要があります。 詳細については、「ossutil コマンドリファレンス」をご参照ください。
ホットリンク保護の詳細については、「ホットリンク保護」をご参照ください。
ホットリンク保護構成を作成または変更する
バケットにホットリンク保護が構成されていない場合、次の referer コマンドはバケットにホットリンク保護を構成します。 バケットにホットリンク保護が構成されている場合、次の referer コマンドはバケットの既存のホットリンク保護構成を上書きします。
次のコマンドを実行して、バケットのホットリンク保護を構成したり、バケットのホットリンク保護構成を変更したりできます。
コマンド構文
ossutil referer --method put oss://bucketname refererconfig [--disable-empty-referer]次の表に、コマンド構文のパラメーターとオプションを示します。
パラメーター/オプション
説明
bucketname
ホットリンク保護構成を作成または変更するバケットの名前。
refererconfig
Referer ホワイトリストに追加するドメイン名または IP アドレス。 ワイルドカード文字としてアスタリスク (*) と疑問符 (?) を使用できます。 複数の Referer を指定する場合は、スペースで区切ります。 例:
http://www.aliyun.comを Referer ホワイトリストに追加すると、http://www.aliyun.com で始まる URL(http://www.aliyun.com/123 や http://www.aliyun.com.cn など)が一致する可能性があります。*www.aliyun.comを Referer ホワイトリストに追加すると、www.aliyun.comを含む URL(http://www.aliyun.com や https://www.aliyun.com など)が一致する可能性があります。アスタリスク (*) をワイルドカード文字として使用して、ゼロ個以上の文字を表すことができます。 たとえば、
*.aliyun.comを Referer ホワイトリストに追加すると、https://www.alibabacloud.com/help や https://www.aliyun.com などの URL が一致する可能性があります。疑問符 (?) をワイルドカード文字として使用して、1 文字を表すことができます。
ポート番号が続くドメイン名または IP アドレス(https://www.example.com:8080 や https://10.0.0.0:8080 など)を Referer ホワイトリストに追加できます。
--disable-empty-referer
空の Referer フィールドを持つリクエストを許可するかどうかを指定します。
このパラメーターを指定しない場合、空の Referer フィールドを持つリクエストが許可されます。 空の Referer フィールドを含む、または Referer フィールドを含まない HTTP または HTTPS リクエストが許可されます。
このパラメーターを指定した場合、空の Referer フィールドを持つリクエストは許可されません。 有効な値を持つ Referer フィールドを含む HTTP または HTTPS リクエストのみがバケットにアクセスできます。
例
www.aliyun.comドメインがバケット内のオブジェクトを参照できるように examplebucket バケットのホットリンク保護を構成し、ブラウザのアドレスバーにオブジェクト URL を入力することによる examplebucket バケット内のオブジェクトへのアクセスを拒否します。ossutil referer --method put oss://examplebucket http://www.aliyun.com https://www.aliyun.com --disable-empty-refererwww.aliyun.comドメインがバケット内のオブジェクトを参照できるように examplebucket バケットのホットリンク保護を構成し、ブラウザのアドレスバーにオブジェクト URL を入力することによるオブジェクトアクセスを許可します。ossutil referer --method put oss://examplebucket http://www.aliyun.com https://www.aliyun.com次の出力例は、バケットにホットリンク保護が構成されていることを示しています。
0.134839(s) elapsed
バケットのホットリンク保護構成をクエリする
コマンド構文
ossutil referer --method get oss://bucketname [local_xml_file]次の表に、上記のコマンドのパラメーターを示します。
パラメーター
説明
bucketname
ホットリンク保護構成をクエリするバケットの名前。
local_xml_file
バケットのホットリンク保護構成を格納するローカルファイルの名前。 例:
localfile.txt。 このパラメーターを指定しない場合、ホットリンク保護構成が画面に表示されます。例
examplebucket バケットのホットリンク保護構成をクエリし、
localfile.txtファイルにホットリンク保護構成を格納します。ossutil referer --method get oss://examplebucket localfile.txt次の出力例は、ホットリンク保護構成が取得されたことを示しています。
0.212407(s) elapsedexamplebucket バケットのホットリンク保護構成をクエリし、ホットリンク保護構成を表示します。
ossutil referer --method get oss://examplebucket次の出力例は、Referer ヘッダーが
*www.aliyun.comと一致する HTTP または HTTPS リクエストのみが examplebucket バケットにアクセスできること、および空の Referer フィールドを持つリクエストは許可されないことを示しています。<?xml version="1.0" encoding="UTF-8"?> <RefererConfiguration> <AllowEmptyReferer>false</AllowEmptyReferer> <RefererList> <Referer>*www.aliyun.com</Referer> </RefererList> </RefererConfiguration> 0.080482(s) elapsed
バケットのホットリンク保護構成を削除する
コマンド構文
ossutil referer --method delete oss://bucketname構文では、bucketname は、ホットリンク保護構成を削除するバケットの名前を指定します。
例
examplebucket バケットのホットリンク保護構成を削除します。
ossutil referer --method delete oss://examplebucket次の出力例は、バケットのホットリンク保護構成が削除されたことを示しています。
0.212409(s) elapsed
共通オプション
ossutil を使用して別のリージョンにあるバケットに切り替える場合は、-e オプションを追加して、バケットがあるリージョンのエンドポイントを指定します。 ossutil を使用して別の Alibaba Cloud アカウントに属するバケットに切り替える場合は、-i オプションを追加して、指定したアカウントの AccessKey ID を指定し、-k オプションを追加して、指定したアカウントの AccessKey シークレットを指定します。
次のコマンドは、中国 (杭州) リージョンにあり、別の Alibaba Cloud アカウントが所有する testbucket バケットのホットリンク保護を構成する方法の例を示しています。
ossutil referer --method put oss://testbucket www.alibabacloud.com -e oss-cn-hangzhou.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret共通オプションの詳細については、「共通オプション」をご参照ください。