- English
- 日本語
Alibaba Object Storage Service
最終更新日 2022-03-01
パブリックコンテンツとプライベートコンテンツの両方で、Alibaba Object Storage Service (OSS) を Fastly のオリジンとして使用することができます。
OSS をオリジンとして使用する
OSS をオリジンとして使用するには、以下の手順に従ってください。
OSS アカウントのセットアップと設定
Alibaba Object Storage Service に登録します。
バケットを作成し、オリジンのデータを保存します。
以下のように Create Bucket 設定画面の各フィールドに入力します。
OK をクリックします。
バケットにファイルをアップロードする
バケットを作成したらそのバケットを選択し、Files タブに移動して Upload をクリックし、ファイルを追加します。
バケットの Public Read オプションを選択してファイルを外部からアクセス可能にするか、または Inherited from Bucket オプションを使用します。
OSS をオリジンとして使用するように Fastly を構成する
OSS バケットを GCS バケットをオリジンサーバーとして追加するには、ホストと連携する手順に従ってください。オリジンサーバーについての具体的な情報を追加します。
- Origins ページで Create Host をクリックし、
<BUCKET>.<REGION>.aliyuncs.com
形式を使用してホストの適切なアドレスを入力します。例えば、バケット名がtest123
で地域が北京 (例:oss-cn-beijing
) である場合、ホスト名はtest123.oss-cn-beijing.aliyuncs.com
になります。また、バケットドメイン名エリアのバケット概要ページでホスト名を確認することもできます。 - 新たに作成したホストをクリックして編集します。
- Name フィールドにサービスの分かりやすい名前を入力します (例:
Alibaba Object Storage
)。 - Address フィールドに最初のステップで入力したホスト名が
<BUCKET>.<REGION>.aliyuncs.com
形式でない場合はここで入力します。 - 以下の要領で トランスポートレイヤーセキュリティ (TLS) セクションの各フィールドに入力します。
- Enable TLS? をデフォルト設定の Yes のままにし、Fastly とオリジン間の接続を保護します。
- Verify certificate? を離れるデフォルト設定の Yes のままにしておきます。
- Certificate hostname フィールドに、Address フィールドに表示されるアドレスを入力します (例:
test123.oss-cn-beijing.aliyuncs.com
)。 - SNI hostname フィールドでは、Match the SNI hostname to the Certificate hostname のチェックボックスを選択します。ホスト作成時に入力したホスト名のアドレスが表示されます。
- TLS セクションの下にある Shielding メニューのシールドロケーションのリストでは、Alibaba のリージョンに近い Fastly POP を選択します。
- Advanced options のOverride host フィールドに、ホストの適切なアドレスを入力します (例:
test123.oss-cn-beijing.aliyuncs.com
)。この情報はホスト作成時に入力されたものです。
オリジンシールドの注意点を確認し、それに従ってシールド POP を選択してください。
プライベートオブジェクトで OSS を使用する
OSS のプライベートオブジェクトを Fastly で使用するには、Fastly が正しい OSS バケットに向けられ、Fastly が OSS データにアクセスできるように設定されていることを確認してから、以下の手順に従ってください。
プライベートバケットとサブユーザーの設定
プライベートバケットの設定は、パブリックバケットの設定と同じですが、OSS のバケット設定のアクセス制御リストのセクションで Private を選択する点が異なります。
AccessKey ID と Access Key Secret が必要になります。これらは、Alibaba Cloud Console の右上にあるアバターをクリックし、Access Key を選択して新しいキーを作成することで、ご自身のアカウントにリンクさせることができます。このキーはアカウントへの完全なアクセス権を持つため、Alibaba の手順に従ってサブユーザーを作成することをお勧めします。以下の手順に従ってください。
Resource Access Management (RAM) ページに移動します。
Users をクリックします。
Create User をクリックします。
適切な Logon Name と Display Name を入力します。
Programmatic Access のチェックボックスを選択し、Alibaba API によるアクセスを有効にします。
OK をクリックします。
AccessKeyID と AccessKeySecret をコピーします。Authorization ヘッダーを作成する際には、これらが後ほど必要になります。
バケット概要に戻り、Files をクリックしてから、Authorize をクリックします。 認証ユーザーのリストが表示されます。これが新しいバケットである場合、空の状態が表示されるはずです。
Authorize をクリックして、以下のようにフィールドに入力します。
- Applied To メニューから Whole Bucket を選択します。Specified Resources を選択することもできますが、その場合、新しいファイルでアクセス許可を更新しないと、後で予期しないエラーが発生する可能性があります。
- Accounts メニューから RAM Users を選択し、新しく作成した RAM ユーザーをメニューで選択します。
- Authorized Operation メニューから Read Only を選択します。
- Condition は空白のままにしておくか、IP = に Fastly の IP アドレス範囲を入力、または Access Method を HTTPS に設定してカスタマイズできます。
OSS のプライベートコンテンツを使用するための Fastly のセットアップ
Fastly では、OSS プライベートコンテンツを使用するには、次の2つのヘッダーを作成する必要があります: Date ヘッダー (認可シグネチャに必要) および Host ヘッダー。また、認可パラメータを追加する必要があります。
Date ヘッダーの作成
- Fastly コントロールパネルにログインします。
- Home ページから、適切なサービスを選択します。検索ボックスで ID、名称、ドメインによる検索が行えます。
- Edit configuration をクリックし、アクティブなバージョンをクローンするオプションを選択します。
- Content をクリックします。
Create header をクリックします。
以下の要領で、Create a new header ページの各フィールドに入力します。
- Name フィールドに
Date
と入力します。 - Type メニューから Request を選択し、Action メニューから Set を選択します。
- Destination フィールドに
http.Date
と入力します。 - Source フィールドに
var.ali_expires
と入力します。 - Ignore if set メニューから No を選択します。
- Priority フィールドに
19
を入力します。
- Name フィールドに
Create をクリックします。コンテンツページに新しい Date ヘッダーが表示されます。これは後で Authorization ヘッダーの署名で使用します。
Host ヘッダーの作成
- Create header をクリックします。
- 以下の要領で、Create a new header ページの各フィールドに入力します。
- Name フィールドに
Date
と入力します。 - Type メニューから Request を選択し、Action メニューから Set を選択します。
- Destination フィールドに
http.Host
と入力します。 - Source フィールドに
"<your OSS domain>"
と入力します。 - Ignore if set メニューから No を選択します。
- Priority フィールドに
19
を入力します。
- Name フィールドに
- Create をクリックします。Content ページに新しい Host ヘッダーが表示されます。
Authorization ヘッダーを作成する
Create header を再度クリックし、別の新しいヘッダーを作成します。
以下の要領で、Create a header ページの各フィールドに入力します。
- Name フィールドに
Authorization
と入力します。 - Type メニューから Request を選択し、Action メニューから Set を選択します。
- Destination フィールドに
url
と入力します。 - Ignore if set メニューから No を選択します。
- Priority フィールドに
20
を入力します。
- Name フィールドに
Source フィールドに、以下の形式で Authorization ヘッダーの情報を入力します。
req.url.path "?" "OSSAccessKeyId=<AccessKeyId>" "&" "Signature=" digest.hmac_sha1_base64("<AccessKeySecret>", if(req.method == "HEAD", "GET", req.method) LF LF LF req.http.Date LF "/<OSS bucket name>" req.url.path) "&" "Expires=" var.ali_expires<AccessKeyId>
、<AccessKeySecret>
、<OSS bucket name>
を先ほど収集した情報に置き換えます。例:req.url.path "?" "OSSAccessKeyId=AOSSdecafbad" "&" "Signature=" urlencode(digest.hmac_sha1_base64("AOSSdeadbeef", if(req.method == "HEAD", "GET", req.method) LF LF LF req.http.Date LF "/test123" req.url.path)) "&" "Expires=" var.ali_expiresCreate をクリックします。Content ページに新しい Authorization ヘッダーが表示されます。
- Activate をクリックして設定への変更をデプロイします。
OSS のプライベートコンテンツを使用するために VCL スニペットで Fastly をセットアップする
VCL スニペットでこの設定を行い、優先順位を 20
に設定します。
12345678910111213141516171819202122
declare local var.ali_bucket STRING;declare local var.ali_region STRING;declare local var.ali_access_key_id STRING;declare local var.ali_access_key_secret STRING;declare local var.ali_expires INTEGER;declare local var.ali_canon STRING;declare local var.ali_sig STRING;_set var.ali_bucket = "test123";set var.ali_region = "oss-cn-beijing";set var.ali_access_key_id = "decafbad";set var.ali_access_key_secret = "deadbeef";set var.ali_expires = std.atoi(now.sec);set var.ali_expires += 60;set req.http.Host = var.ali_bucket "." + var.ali_region + ".aliyuncs.com";set req.http.Date = var.ali_expires;set var.ali_canon = if(req.method == "HEAD", "GET", req.method) LF LF LF req.http.Date LF "/" var.ali_bucket req.url.path;set var.ali_sig = digest.hmac_sha1_base64(var.alibaba_access_key_secret, var.ali_canon);set req.url = req.url.path;set req.url = querystring.set(req.url, "OSSAccessKeyId", var.alibaba_access_key_id);set req.url = querystring.set(req.url, "Signature", var.ali_sig);set req.url = querystring.set(req.url, "Expires", var.ali_expires);
注意
このページでは、サードパーティが提供するサービスとの統合について説明しています。詳細については、統合に関する注意事項をご覧ください。
翻訳についての注意事項
このフォームを使用して機密性の高い情報を送信しないでください。サポートが必要な場合は、サポートチームまでご連絡ください。このフォームは reCAPTCHA によって保護されており、Google のプライバシーポリシーと利用規約が適用されます。