高速化ドメイン名で非公開の Alibaba Cloud Object Storage Service (OSS) バケットを使用してアクセス認証を行い、不正なトラフィックを防止する場合は、非公開 OSS バケットのオリジンフェッチ機能を有効にしてください。これにより、CDN を使用して、非公開 OSS バケット内のリソースを高速化できます。
仕組みとメリット
仕組み:この機能を有効にすると、CDN は非公開 OSS バケットに送信される各オリジンリクエストのヘッダーに
Authorizationフィールドを自動的に追加します。このフィールドの値は、セキュリティトークンサービス (STS) の一時的なトークンや AccessKey など、お客様が権限を付与した ID 情報から生成された有効な署名です。OSS はこの署名を使用してリクエストを認証します。セキュアなアクセス:CDN に読み取り専用の権限を付与します。これにより、オリジンリクエストの正当性が保証され、非公開バケットを公開することに伴うセキュリティリスクを回避できます。
コストの最適化:エンドユーザーのリクエストが CDN キャッシュから提供される場合、トラフィック料金は OSS への直接アクセスによって発生するアウトバウンドインターネットトラフィックよりも大幅に低くなります。さらに、CDN から OSS へのトラフィックは CDN back-to-origin トラフィックとして課金され、OSS からのアウトバウンドインターネットトラフィックよりも単価が低くなります。これにより、全体的なコストを効果的に削減できます。詳細については、「CDN で高速化された OSS リソースの課金」をご参照ください。
操作手順
設定プロセスは 2 つのステップで構成されます。まず、アカウントに対して 1 回限りの権限付与を行い、次に指定された高速化ドメイン名に対してこの機能を有効にします。
CDN に OSS へのアクセス権を付与します。アカウント内のいずれかのドメイン名でこの機能を初めて使用する前に、CDN に OSS へのアクセス権を付与する必要があります。これはアカウントレベルの 1 回限りの権限付与です。権限付与を求められない場合は、このステップをスキップしてください。
(推奨) コンソールでの権限付与
CDN コンソールにログインします。
左側のナビゲーションウィンドウで、ドメイン名 をクリックします。
ドメイン名 ページで、管理するドメイン名を見つけて 管理 をクリックします。
ドメイン名の左側のナビゲーションウィンドウで、Back-to-Origin 設定 をクリックします。
OSS 非公開バケットへのアクセス セクションで、権限付与 をクリックします。権限付与の確認ページで、[権限付与] をクリックします。

RAM を介した手動権限付与
RAM コンソールにログインします。
左側のナビゲーションウィンドウで、[権限管理] > [権限ポリシー] の順にクリックします。
[ポリシー] ページで、[ポリシーの作成] をクリックします。
[スクリプトエディター] タブで、以下のポリシーを入力します。
[OK] をクリックします。[ポリシー作成] ページで、次の情報を入力し、[OK] をクリックします。
ポリシー名 : AliyunCDNAccessingPrivateOSSRolePolicy
[注]: この権限付与ポリシーは、CDN または DCDN が非公開 OSS バケットからオリジンフェッチを実行するために使用するロール用です。このポリシーは、OSS に対する読み取り専用の権限を付与します。
{ "Version": "1", "Statement": [ { "Action": [ "oss:List*", "oss:Get*" ], "Resource": "*", "Effect": "Allow" } ] }左側のナビゲーションウィンドウで、[ID 管理] > [ロール] をクリックします。
[ロール] ページで、[ロールの作成] をクリックします。
[プリンシパルタイプ] を [Alibaba Cloudアカウント] に設定し、[現在のAlibaba Cloudアカウント] を [プリンシパル名] に選択して、[OK] をクリックします。
「ロールの作成」 ステップで、次の情報を入力します。
[ロール名] : AliyunCDNAccessingPrivateOSSRole
ロールが作成された後、AliyunCDNAccessingPrivateOSSRole を [ロール] ページのロール一覧でクリックして、ロールの詳細ページにアクセスします。
[信頼ポリシー] タブで、[信頼ポリシーの編集] をクリックし、次の情報を入力して、[OK] をクリックします。
[権限管理] タブに切り替えることができます。次に、[付与] タブで[権限を付与] をクリックします。
リソース範囲:アカウント
プリンシパル:作成した AliyunCDNAccessingPrivateOSSRole を選択します。
「権限ポリシー」では、[カスタム] [ポリシー] を選択します。 次に、作成した AliyunCDNAccessingPrivateOSSRolePolicy を選択し、[権限を付与] をクリックします。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "cdn.aliyuncs.com" ] } } ], "Version": "1" }新規権限付与の確認 新規の権限付与を確認したら、CDN コンソールの Back-to-Origin 設定 ページに戻ります。OSS 非公開バケットへのアクセス 機能に権限が付与されていることを確認できます。
OSS 非公開バケットへのアクセス を有効にし、オリジンフェッチタイプを設定します。
OSS 非公開バケットへのアクセス セクションを探し、そのスイッチをオンにします。
OSS 非公開バケットへのアクセス ダイアログボックスで、オリジンフェッチタイプを選択します。確定 をクリックします。

オリジンフェッチタイプ
推奨されるユースケースと説明
同一アカウントからのオリジン取得
(推奨) これは、CDN と OSS バケットが同じ Alibaba Cloud アカウントにある場合に適しています。システムは自動的に一時的な STS トークンを使用して認証します。これにより、設定が簡素化され、キーを管理する必要がなくなり、より高いセキュリティが提供されます。
STS の一時的なセキュリティトークンは、クロスアカウントのオリジンフェッチにも使用できます。詳細については、「CDN: STS を使用してプライベート OSS バケットのクロスアカウントオリジンフェッチを設定する」をご参照ください。
クロスアカウントまたは同一アカウントのオリジンフェッチ
これは、CDN と OSS バケットが異なる Alibaba Cloud アカウントに属する場合に適しています。同一アカウントのシナリオもサポートしています。このメソッドでは、宛先の非公開 OSS バケットが属する Alibaba Cloud アカウントの AccessKey ID と AccessKey Secret を手動で提供する必要があります。詳細については、「AccessKey ペアの作成」をご参照ください。
説明アクセス範囲:この機能を有効にすると、高速化ドメイン名はオリジンの非公開バケット内のすべてのリソースにアクセスできます。CDN でバケット内の特定のリソースへのアクセスを制限することはできません。
署名の競合:OSS 認証の失敗を防ぐため、オリジンリクエストのリクエストヘッダーと URL パラメーターの両方に署名が含まれていないことを確認してください。
機能の競合:この機能は、OSS の静的 Web サイトホスティング機能のデフォルトページ設定と競合します。両方の機能を同時に使用するには、「関連ドキュメント」をご参照ください。
セキュリティに関する推奨事項
非公開バケットからのオリジンフェッチを有効にすると、オリジンデータは安全になります。ただし、POP にキャッシュされたリソースはデフォルトで公開アクセス可能です。CDN トラフィックの不正使用を防ぐために、CDN が提供する次のセキュリティ機能を使用してください。
Referer のブラックリストまたはホワイトリストの設定:特定の Web サイトからのリクエストに CDN リソースへのアクセスを制限します。
URL 署名の設定:リソース URL に動的な署名と有効期限を設定して、悪意のあるダウンロードを効果的に防止します。
非公開 OSS バケットからのオリジンフェッチの無効化
高速化ドメイン名で非公開バケット内のリソースにアクセスする必要がなくなった場合は、RAMコンソールで権限付与を取り消します。この操作により、CDNが非公開のOSSバケットからオリジンフェッチを実行することを許可する権限が取り消されます。
CDN コンソールで機能を無効にします。
CDN コンソールにログインします。
左側のナビゲーションウィンドウで、ドメイン名 をクリックします。
[ドメイン名] ページで、対象のドメイン名を見つけ、[管理] をクリックします。
ドメイン名の左側のナビゲーションウィンドウで、Back-to-Origin 設定 をクリックします。
OSS 非公開バケットへのアクセス セクションで、OSS 非公開バケットへのアクセス スイッチをオフにします。
RAM コンソールで権限付与を完全に削除します。
RAM コンソールにログインします。
左側のナビゲーションウィンドウで、
[ロール名] リストで、AliyunCDNAccessingPrivateOSSRole をクリックします。

AliyunCDNAccessingPrivateOSSRole ロールからすべての権限を削除します。
「[承認の取り消し]」をクリックして、権限を取り消します。
権限の削除に関する確認ダイアログボックスで、[権限を取消す] をクリックします。
ページに戻り、AliyunCDNAccessingPrivateOSSRole ロールを削除します。
AliyunCDNAccessingPrivateOSSRole ロールの [ロールの削除] をクリックします。
[ロールの削除] 確認ダイアログボックスで、[ロールの削除] をクリックします。
ページで、AliyunCDNAccessingPrivateOSSRolePolicy ポリシーを削除します。
AliyunCDNAccessingPrivateOSSRolePolicy の [ポリシーの削除] ボタンをクリックします。
「[アクセスポリシーの削除]」 確認ダイアログボックスで、ポリシー名を入力し、「[アクセスポリシーの削除]」をクリックできます。
よくある質問
CDN が OSS リソースにアクセスする際に「This request is forbidden by kms.」エラーが発生した場合の解決方法
Key Management Service (KMS) を使用して OSS バケット内のデータを暗号化している場合、CDN のオリジンフェッチロールに KMS キーを使用するための追加権限を付与する必要があります。そうしないと、CDN はこれらのファイルを復号化またはアクセスできず、「This request is forbidden by kms.」エラーが返されます。
RAM コンソールにログインします。
左側のナビゲーションウィンドウで、
[ロール名] リストで、AliyunCDNAccessingPrivateOSSRole ロールを探します。
[権限を付与] をクリックすると、[プリンシパル] が自動的に入力されます。
[アクセスポリシー] の下で、[システムポリシー] を選択します。 AliyunKMSCryptoUserAccess を検索してクリックし、[選択済みアクセスポリシー] ボックスに追加します。
[権限を付与] をクリックします。ステータスは [完了] に変更されます。
[閉じる] をクリックします。

リソースの更新機能を使用します。リフレッシュタスクが完了したら、再度リソースへのアクセスを試みてください。