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