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