- English
- 日本語
Alibaba Object Storage Service
最終更新日 2022-03-01
パブリックコンテンツとプライベートコンテンツの両方で、Alibaba Object Storage Service (OSS) を Fastly のオリジンとして使用することができます。
OSS をオリジンとして使用する
OSS をオリジンとして使用するには、以下の手順に従ってください。
OSS アカウントのセットアップと設定
Alibaba Object Storage Service に登録します。
バケットを作成し、オリジンのデータを保存します。
以下のように Create Bucket 設定画面の各フィールドに入力します。
- Bucket Name フィールドに、バケットの名前を入力します。入力した名前を忘れないでください。入力した名前は、Fastly サービスに接続するために必要となります。
- Region メニューから、ロケーションを選択して接続を保存します。通常は、POP に近い地域を選択してオリジンシールドに指定します。
- Storage Class のオプションから Standard を選択します。
- Access Control List (ACL) のオプションから Public Read を選択します。
- (オプション) Server-side Encryption や Scheduled Backup など、その他のオプションを選択します。
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
になります。また、Bucket Domain Name エリアの Bucket Overview ページでホスト名を確認することもできます。 - 新たに作成したホストをクリックして編集します。
- Name フィールドにサービスの分かりやすい名前を入力します (例:
Alibaba Object Storage
)。 - Address フィールドに最初のステップで入力したホスト名が
<BUCKET>.<REGION>.aliyuncs.com
形式でない場合は、ここで入力します。 - 以下の要領で Transport Layer Security (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 のバケット設定の Access Control List (ACL) のセクションで 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 プライベートコンテンツを使用するには、Date ヘッダー (認可シグネチャに必要) および Host ヘッダーの2つのヘッダーを作成する必要があります。また、認可パラメーターを追加する必要があります。
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 のプライバシーポリシーと利用規約が適用されます。