プライベートOSS (Object Storage Service) バケットをオリジンサーバーとして設定する場合、OSSバケットにアクセスする権限をAlibaba Cloud CDNに付与し、プライベートバケットアクセス機能を有効にすることを推奨します。 この機能は、アクセス認証および不正アクセスからオリジンサーバーを保護するために使用できます。 これにより、Alibaba Cloud CDN は、プライベートOSSバケット内のリソースの配信を高速化できます。
使用上の注意
この機能を初めて使用するときは、アカウント内のすべてのOSSバケットに対してAlibaba Cloud CDN 読み取り専用権限を付与する必要があります。 デフォルトでは、この機能は一時的なSecurity Token Service (STS) トークンを使用してOSSバケットにアクセスします。 この機能を使用して、PUTリクエストを使用してOSSバケット内のオブジェクトを書き込みまたは削除することはできません。
永続的なセキュリティトークンを設定する場合は、トークンの申請時にPUTリクエストを使用して、OSSバケット内のオブジェクトの書き込みまたは削除にトークンが使用されることを制限する必要があります。 RAMユーザーを使用してOSSにアクセスする方法については、「RAMユーザーを使用したOSSへのアクセス」をご参照ください。
Alibaba Cloud CDNに読み取り専用権限を付与し、高速化ドメイン名のプライベートバケットアクセス機能を有効にすると、高速化ドメイン名を使用してプライベートバケット内のすべてのリソースにアクセスできます。 この機能を使用するときは注意してください。 プライベートOSSバケットに、Webサイトの訪問者向け以外のコンテンツが格納されている場合は、プライベートOSSバケットに対してAlibaba Cloud CDN 権限を付与したり、プライベートバケットアクセス機能を有効にしたりしないでください。
Webサイトが攻撃に対して脆弱な場合は、Anti-DDoSサービスを購入してください。 また、プライベートOSSバケットに対してAlibaba Cloud CDN権限を付与する場合、またはプライベートOSSバケットへのアクセスを有効にする場合は、注意して続行してください。
プライベートOSSバケットへのアクセスは、OSSでホストされている静的Webサイトのデフォルトホームページの設定と競合します。 両方の機能を有効にする場合は、「プライベートOSSバケットへのアクセスが有効になった後、アクセラレーションドメイン名宛てのリクエストが「バケットのリストを禁止されています」というエラーメッセージをトリガーするのはなぜですか? 」をご参照ください。
プライベートバケットアクセス機能を有効にすると、POP (Point of presence) はback-to-originリクエストにAuthorizationヘッダーを追加します。 ヘッダーの値は、プライベートOSSバケットにアクセスするための認証署名です。 OSSバケットからリソースを取得するback-to-originリクエストでは、ヘッダーとURLパラメーターの両方に署名を含めることはできません。
Expires
、signature
、OSSAccessKeyId
など、通常はクライアントによって生成される署名認証に使用されるAuthorizationヘッダーとURLパラメーターがback-to-originリクエストに含まれている場合、OSS認証は失敗します。Alibaba Cloud CDNが提供するホットリンク保護やURL署名などの機能を使用して、リソースを不正アクセスから保護できます。 詳細については、「ホットリンク保護を有効にするリファラーホワイトリストまたはブラックリストの設定」および「URL署名の設定」をご参照ください。
プライベートOSSバケットへのアクセスを有効にする
Alibaba Cloud CDNコンソール
左側のナビゲーションウィンドウで、ドメイン名 をクリックします。
ドメイン名 ページで、管理するドメイン名を見つけ、[管理] をクリックします。
ドメイン名の左側のナビゲーションツリーで、Back-to-Origin 設定 をクリックします。
オプションです。 この機能を初めて使用するときにこの操作を実行します。 プライベートバケットアクセス セクションで、権限付与 をクリックします。 次に、[権限付与ポリシーの確認] をクリックします。
説明CDNコンソールを使用してプライベートOSSバケットに権限を付与できなかった場合は、RAMコンソールを使用してプライベートOSSバケットに権限を付与できます。 詳細については、「RAMコンソールを使用したプライベートOSSバケットの権限付与」をご参照ください。
プライベートバケットアクセス セクションで、プライベートバケットアクセス をオンにします。
説明Alibaba Cloud CDNがプライベートOSSバケット内の暗号化されていないファイルにアクセスする権限を付与する場合は、上記の手順を実行するだけです。 Alibaba Cloud CDNがKey Management Service (KMS) を使用して暗号化されたOSSオブジェクトにアクセスする場合は、まずAliyunKMSCryptoUserAccessポリシーをRAMロールAliyunCDNAccessingPrivateOSSRoleにアタッチする必要があります。 詳細については、「AliyunKMSCryptoUserAccessポリシーをRAMロールAliyunCDNAccessingPrivateOSSRoleにアタッチする」をご参照ください。
表示される プライベートバケットアクセス ダイアログボックスで、タイプを選択して [OK] をクリックします。
パラメーター
説明
データ型
同じアカウントのバケット: STSが発行するセキュリティトークンが自動的に設定されます。 ただし、Alibaba Cloud CDNは、同じAlibaba CloudアカウントのプライベートOSSバケットにのみアクセスできます。
Bucket Accounts or in the Same Account: 永続的なセキュリティトークンを設定する必要があります。 これにより、Alibaba Cloud CDNは、同じAlibaba Cloudアカウント内のプライベートOSSバケットからコンテンツを取得できるだけでなく、Alibaba Cloudアカウント全体のプライベートOSSバケットからもコンテンツを取得できます。
AccessKey ID
プライベートOSSバケットが属するAlibaba CloudアカウントのAccessKey ID。 詳細については、「AccessKey の作成」をご参照ください。
AccessKey Secret
プライベートOSSバケットが属するAlibaba CloudアカウントのAccessKeyシークレット。
オプションです。 AliyunKMSCryptoUserAccessポリシーをRAMロールAliyunCDNAccessingPrivateOSSRoleにアタッチします。
RAMコンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[ロール] ページで、RAMロールAliyunCDNAccessingPrivateOSSRoleを見つけます。
[権限の追加] をクリックします。 [権限の追加] パネルで、[プリンシパル] フィールドが自動的に入力されます。
[システムポリシー] をクリックし、検索ボックスにAliyunKMSCryptoUserAccessと入力して、AliyunKMSCryptoUserAccess権限ポリシーを検索します。 権限ポリシーをクリックして、[選択済み] リストに追加します。
[OK] をクリックします。
[完了] をクリックします。
RAMコンソールを使用したプライベートOSSバケットへの権限付与
Alibaba Cloud CDN コンソールを使用してプライベートOSSバケットに権限を付与できなかった場合、RAMコンソールを使用してプライベートOSSバケットに権限を付与できます。
RAM コンソールにログインします。
左側のナビゲーションウィンドウで、[権限] > [ポリシー] を選択します。
[ポリシー] ページで [ポリシーの作成] をクリックします。
[JSON] タブで、次のポリシーコンテンツを入力します。
{ "Version": "1", "Statement": [ { "Action": [ "oss: リスト *" 、 "oss:Get *" ], "Resource": "*", "Effect": "Allow" } ] }
[次へ] をクリックし、次のパラメーターを設定し、[OK] をクリックします。
名前: AliyunCDNAccessingPrivateOSSRolePolicy。
Desciption: RAMロールにアタッチするポリシー (OSSバケットの読み取り専用権限を含む) 。
左側のナビゲーションウィンドウで、[アイデンティティ] > [ロール] を選択します。
[ロール] ページで、[ロールの作成] をクリックします。
[信頼できるエンティティの選択] セクションで、[Alibaba Cloudアカウント] を選択し、[次へ] をクリックします。
[ロールの設定] ステップで、次の情報を入力します。
RAMロール名: AliyunCDNAccessingPrivateOSSRole
注意: デフォルトでは、Alibaba Cloud CDNとDCDNはこのロールを使用してプライベートOSSバケットにアクセスします。
[信頼できるAlibaba Cloudアカウントの選択] セクションで、[現在のAlibaba Cloudアカウント] を選択し、[OK] をクリックします。
ロールを作成した後、[ロール] ページで [AliyunCDNAccessingPrivateOSSRole] をクリックします。
[信頼ポリシー管理] タブで、[信頼ポリシーの編集] をクリックし、次の情報を入力して、[OK] をクリックします。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "cdn.aliyuncs.com" ] } } ], "バージョン": "1" }
[権限] タブで、[権限付与] をクリックします。
[許可されたスコープ] セクションで、[Alibaba Cloudアカウント] を選択します。
[ポリシーの選択] セクションで、[カスタムポリシー] タブをクリックし、作成したポリシーを選択し、[OK] をクリックします。
Alibaba Cloud CDN コンソールの [オリジンフェッチ] ページに移動します。 ロールがAlibaba Cloud OSSプライベートバケットアクセス機能の使用を許可されていることがわかります。
プライベートOSSバケット の権限を取り消す
Alibaba Cloud CDN にプライベートOSSバケットに対する権限を持たせたくない場合は、RAMコンソールで対応するロールの権限を取り消すことができます。
RAMコンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[ロール] ページで、[AliyunCDNAccessingPrivateOSSRole] をクリックします。
AliyunCDNAccessingPrivateOSSRoleロールからすべての権限を取り消します。
管理するポリシーを見つけて、[操作] 列の [権限の取り消し] をクリックします。
[権限の取り消し] ダイアログボックスで、[権限の取り消し] をクリックします。
を選択します。
AliyunCDNAccessingPrivateOSSRoleを検索し、[操作] 列の [ロールの削除] をクリックします。
[ロールの削除] メッセージにAliyunCDNAccessingPrivateOSSRoleと入力し、[OK] をクリックします。
参考情報
Alibaba Cloud CDNを使用してOSSバケットからのリソースの配信を高速化する方法については、「Alibaba Cloud CDNを使用してOSSバケットからのリソースの配信を高速化する」をご参照ください。
プライベートバケットへのアクセスを有効にすると、Alibaba Cloud CDN 高速化ドメイン名にアクセスすると、「バケットの一覧表示が禁止されます」というエラーメッセージが表示される場合があります。 詳細については、「プライベートOSSバケットback-to-originを有効にした後、Alibaba Cloud Content Delivery Networkアクセラレーションドメイン名にアクセスすると、「バケットの一覧表示が禁止されています」エラーが表示されます」をご参照ください。
プライベートバケットへのアクセスを有効にすると、Alibaba Cloud CDN は、デフォルトで非匿名アクセスのプライベートバケットからコンテンツを取得するリクエストに署名情報を含めます。 ただし、静的Webサイトホスティングを使用して構成されたデフォルトのホームページにアクセスするには、リクエストを匿名にする必要があります。 詳細については、「Alibaba Cloud CDNを使用してプライベートバケットからオブジェクトを取得するときに、バケットのデフォルトのホームページにアクセスできない理由」をご参照ください。