OSS では、カスタムドメイン名をバケット、アクセスポイント、または Object FC アクセスポイントにマッピングして、デフォルトのエンドポイントを使用する代わりに OSS リソースにアクセスできます。マッピング後、カスタムドメイン名を使用してファイルをオンラインでプレビューし、ブランドの一貫性を向上させ、HTTPS 証明書や CDN アクセラレーションなどの機能を柔軟に構成できます。
2025 年 3 月 20 日 00:00:00 (UTC+8) 以降、新規 OSS ユーザーは、中国本土リージョンのバケットに対するデータ API へのデフォルトのパブリックエンドポイント (例: oss-cn-hangzhou.aliyuncs.com) 経由でのアクセスがブロックされます。このようなリクエストは、PublicEndpointForbidden エラー (HTTP ステータスコード 400、EC 0048-00000401) で拒否されます。パブリックネットワーク経由でこれらの API を引き続き呼び出すには、カスタムドメイン名を使用する必要があります。詳細については、「アップグレード通知」をご参照ください。
仕組み
カスタムドメイン名を OSS にマッピングする仕組みは、DNS の CNAME レコードを使用します。カスタムドメイン名を OSS が提供するデフォルトドメイン名にポイントすることで、DNS システムはカスタムドメイン名へのリクエストを対応する OSS エンドポイントに解決し、OSS リソースへのアクセスを提供します。
構成プロセスには、ドメイン名のマッピング、CNAME レコードの構成、アクセスの検証の 3 つのステップが含まれます。OSS は、カスタムドメイン名を次の 4 種類のエンドポイントにマッピングすることをサポートしています。ビジネス要件に基づいていずれかを選択してください。
シナリオ | アタッチメント方法 | 説明 |
静的リソースのホスティングとファイルのオンラインプレビュー | パブリックエンドポイントへのマッピング | 基本的なファイルアクセス要件を満たす最も一般的な方法 |
国境を越えた、または長距離の転送の高速化 | アクセラレーションエンドポイントへのアタッチ | 転送アクセラレーション機能を最初に有効にする必要があります |
カスタムドメイン名を使用したアクセスの有効化
登録済みのドメイン名があるか、新しいドメイン名を登録していることを確認してください。バケットが中国本土にある場合、マッピングされたドメイン名にはICP 登録が必要です。
ステップ 1: カスタムドメイン名のマッピング
バケットリスト ページに移動し、目的のバケット名をクリックして、左側のナビゲーションウィンドウで をクリックします。次に、カスタムドメイン名のマッピング をクリックします。
マッピングするドメイン名を入力します。システムが自動的に、そのドメイン名がマッピング要件を満たしているかどうかをチェックします。ドメイン名が現在のAlibaba Cloudアカウントに属している場合、OK をクリックしてマッピングを完了できます 。ドメイン名が別のAlibaba Cloudアカウントに属している場合、または別のドメインネームサービスプロバイダーによって管理されている場合は、ドメイン所有権の検証を行う必要があります。以下の手順では、Alibaba Cloudから購入したドメイン名を例として使用します:
ドメイン名を所有する Alibaba Cloud アカウントで、Alibaba Cloud DNS コンソールにログインします。対象のドメイン名を見つけ、操作列の解決設定をクリックします。
「Add Record」をクリックします。以下のリストに指定されている通り、レコード情報を入力します。その他のすべての設定項目については、デフォルト設定をそのまま使用します。
レコードタイプ: TXT を選択します。
ホストレコード: ホストレコードのプレフィックスのみを入力します(例:
_dnsauth)。サブドメイン(例:image.example.com)をマッピングする場合は、サブドメインのプレフィックスも追加する必要があります。たとえば、_dnsauth.imageを入力します。レコード値: OSS コンソールに表示されるレコード値を入力します。
OK をクリックします。Change Resource Record Confirmation ウィンドウが表示された場合は、もう一度 OK をクリックします。
OSS コンソールに戻って、ドメイン名の所有権の確認 をクリックして、ドメイン名をバケットにマップします。
DNS レコードが有効になるまでには時間がかかる場合があります。ページでエラーが報告された場合は、数分待ってから再度試してください。TXT レコードはドメイン名の所有権を検証するために使用されます。検証が成功した後、レコードを削除できます。削除してもその後の使用には影響しません。
ステップ 2: CNAME レコードの構成
ドメイン名をマッピングした後、カスタムドメイン名はまだアクティブではありません。カスタムドメイン名を OSS エンドポイントにポイントするように CNAME レコードを構成する必要があります。
CNAME レコードを構成する前に、ステップ 1 でドメイン名をマッピングする必要があります。そうしないと、カスタムドメイン名を使用して OSS にアクセスしたときに OSS がバケットを正しく識別できず、予期しないコンテンツが返されます。ドメイン名のマッピングを解除した後、CNAME レコードを速やかに削除してください。
ドメイン名が現在の Alibaba Cloud アカウントに属している場合、コンソールで CNAMEレコードを自動的に追加する を選択できます。システムが自動的に CNAME 構成を完了します 。その他の場合は、レコードを手動で構成する必要があります。以下の手順では、Alibaba Cloud で購入したドメイン名を例に説明します。
同じホスト名を持つレコードがすでに存在するため、CNAME レコードを自動的に追加できないというメッセージが表示された場合、Alibaba Cloud DNS コンソールにログインして、CNAME レコードがまだ使用中であるかを確認してください。レコードが使用中でない場合は、削除してレコードを再度追加できます。
ドメイン名を所有する Alibaba Cloud アカウントでAlibaba Cloud DNS コンソールにログインし、ターゲットドメイン名を見つけて [操作] 列の解決設定をクリックします。
Add Recordをクリックします。次の一覧に従ってレコード情報を入力します。その他すべての設定項目は、デフォルト設定のままにします。
レコードタイプ: CNAME を選択します。
ホストレコード: ルートドメインをマッピングする場合は、
@を入力します。サブドメイン(例:image.example.com)をマッピングする場合は、サブドメインのプレフィックスを入力します。たとえば、imageを入力します。説明同じ名前の A レコードがすでに存在する場合、CNAME レコードを追加する前に A レコードを削除する必要があります。同じホスト名に対して 2 種類のレコードは共存できません。A レコードが使用中である場合 (例: ECS インスタンスまたは WAF を指している場合)、既存のサービスへの影響を避けるために、新しいサブドメインを使用して OSS にマッピングすることを推奨します。
レコード値: ご使用のビジネス シナリオに基づいて、宛先ドメイン名を入力します。
シナリオ
レコード値
パブリックアクセス
CNAME (推奨、例:
example-bucket.<region-id>.taihangcda.cn) またはパブリックエンドポイント転送アクセラレーションアクセス
アクセラレーションエンドポイント (例:
example-bucket.oss-accelerate.aliyuncs.com)
[OK] をクリックします。[リソースレコードの変更確認] ウィンドウが表示された場合は、もう一度 [OK] をクリックします。
DNS レコードが有効になるまでの時間は、その TTL (Time to Live) 設定によって異なります。変更がグローバルに伝播するまでには、数分から数時間かかる場合があります。構成後すぐにドメインにアクセスできない場合でも、それは正常です。しばらく待つか、ローカル DNS キャッシュをクリアしてみてください。dig example.com CNAME +short コマンドを実行して、CNAME レコードのターゲットとステータスを確認できます。
ステップ 3: カスタムドメイン名を使用したアクセスの検証
ドメイン名をマッピングし、CNAME レコードを構成した後、以下の方法を使用してカスタムドメイン名がアクティブであることを確認します。
公開読み取りおよび公開読み書きバケット
ブラウザで URL を使用してオブジェクトに直接アクセスします。例: http://image.example.com/example.jpg は、バケットのルートディレクトリにあるオブジェクト example.jpg にアクセスします。
非公開バケット
非公開バケットにアクセスする場合、アクセス URL には署名が含まれている必要があります。以下の手順は、コンソールからオブジェクトの署名付き URL を取得する方法を示しています。署名とそれらの生成方法の詳細については、「Signature Version 4 (推奨)」をご参照ください。
バケットリストページに移動し、ターゲットバケットをクリックします。
アクセスする対象オブジェクトの操作列で、詳細 をクリックします。
ドメインを カスタムドメイン名 に設定し、マップされたカスタムドメイン名を選択してから、オブジェクト URL のコピー をクリックします。
変更された URL にブラウザでアクセスします。
本番環境での利用
ベストプラクティス
安全な転送: HTTPS の有効化
カスタムドメイン名に SSL 証明書を設定して、HTTPS アクセスを強制します。HTTPS プロトコルは TLS/SSL を使用して転送中のデータを暗号化し、データの傍受や改ざんを防ぎます。これにより、ブラウザに「保護されていない通信」という警告が表示されるのを防ぎ、ユーザーの信頼とブランドイメージを向上させます。
クロスオリジンアクセス: CORS ルールの設定
https://web.example.comなどにデプロイされたフロントエンドアプリケーションが、https://oss.example.comのような異なるドメインにある OSS リソースにアクセスする必要がある場合は、CORS ルールを設定する必要があります。これらのルールにより、アプリケーションのドメインからのクロスオリジンリクエストが許可され、フロントエンドアプリケーションが OSS リソースにアクセスできるようになります。スムーズな本番稼働: ゼロダウンタイムでのドメイン切り替え
バケットのエンドポイントからマッピングされたカスタムドメイン名に切り替える必要がある場合は、サービスの中断を避けるために、以下の段階的な戦略を使用します。
準備フェーズ: ドメイン名のマッピングと CNAME 設定を完了します。ステージング環境で機能とパフォーマンスを検証します。
カナリアリリースフェーズ (オフピーク時に推奨): トラフィックの一部を段階的にカスタムドメイン名に切り替えます。
検証フェーズ: アクセスログとエラー率を監視し、サービスが期待どおりに実行されていることを確認します。
完全リリースフェーズ: すべてのトラフィックをカスタムドメイン名に切り替えて、移行を完了します。
ロールバック手順: 問題が発生した場合は、直ちにバケットのエンドポイントにロールバックし、根本原因を分析して再デプロイします。
パフォーマンスとセキュリティ: サブドメインによる使用の分離
静的 Web リソース用の
static.example.comや画像リソース用のimages.example.comのように、ビジネス目的ごとに異なるサブドメインを割り当てます。このドメイン分離戦略は、ブラウザの同時接続の最適化、独立したキャッシュポリシーの設定、および詳細なアクセス制御の実装に役立ちます。機能拡張: 静的 Web サイトのホスティング
OSS で完全な静的 Web サイト (HTML、CSS、JS ファイルを含む) をホスティングするには、カスタムドメイン名をマッピングした後に 静的 Web サイトホスティングを設定します。これにより、デフォルトのインデックスページや 404 エラーページなどの基本的な Web サイト機能が有効になります。
パフォーマンスの最適化: CDN アクセラレーションの設定
世界中のユーザーに静的リソースを配信する必要があるユースケースでは、CDN サービスを設定することを推奨します。これにより、世界中に分散されたエッジノードにコンテンツがキャッシュされ、アクセスレイテンシーが低下し、ユーザーエクスペリエンスが向上します。
リスク防止
ホットリンク保護: Referer ベースのホットリンク保護の設定
他の Web サイトが画像や動画などのリソースを使用し、不要なトラフィックコストや帯域幅の消費が発生するのを防ぐには、Referer ベースのホットリンク保護を設定します。ホワイトリストを使用してアクセス元を制限することで、コストを効果的に管理し、リソースを不正利用から保護できます。
動作監査とトラブルシューティング: アクセスログの有効化
OSS の リアルタイムログクエリを有効にすると、アクセス時間、送信元 IP、リクエストタイプ、応答ステータスなど、すべてのアクセスリクエストに関する詳細情報が記録されます。これにより、セキュリティ監査、パフォーマンス分析、トラブルシューティングが容易になります。
クォータと制限
マッピング制限:各バケットには、最大100個のカスタムドメイン名をマッピングできます。
ドメインの一意性:カスタムドメイン名は、一度に1つのバケットにのみマッピングできます。マッピングを変更するには、一意の宛先と明確なアクセスパスを確保するため、まず元のバケットからドメインのマッピングを解除する必要があります。
説明レガシー画像処理機能の一部のユーザーの場合、画像処理にすでに使用されているドメインはバケットにマッピングできません。新しい画像処理機能にはこの制限はありません。
ドメイン名の種類:
*.example.comのような中国のドメイン名とワイルドカードドメインのマッピングはサポートされていません。これにより、DNS解決の安定性と互換性が確保されます。説明CDNを使用してOSSアクセスを高速化する場合、ワイルドカードドメインをマッピングできますが、そのドメインはOSSコンソールには表示されません。
よくある質問
カスタムドメイン名経由でアクセスする際に、ファイルのプレビューまたはダウンロードを制御するにはどうすればよいですか?
Content-Disposition HTTP レスポンスヘッダーは、ファイルのプレビューまたはダウンロードを決定します。OSS が提供するデフォルトドメイン名を使用してファイルにアクセスする場合、OSS はセキュリティのために Content-Disposition: attachment ヘッダーの追加を強制します。ただし、カスタムドメイン名経由でファイルにアクセスする場合、OSS はこのヘッダーを追加しないため、動作を制御できます。
プレビューを有効にするには: カスタムドメイン名を使用してファイルにアクセスし、オブジェクトのメタデータに
Content-Disposition: attachmentヘッダーが設定されていないこと、およびオブジェクトのContent-Type(MIME タイプ) がファイル形式と正しく一致していることを確認します。ブラウザでネイティブにサポートされていないファイル形式の場合、以下の方法でプレビュー機能を拡張します。.doc、.ppt、.pdf などの Office ファイルの場合、WebOffice オンラインプレビュー サービスを統合します。
.mov などの特殊なビデオ形式の場合、ビデオトランスコーディング サービスを使用して、Web 互換形式に変換してプレビューします。
対応するファイルタイプのブラウザプラグインをインストールします。
強制ダウンロードするには: オブジェクトの
Content-Dispositionメタデータを手動でattachmentに設定します。これにより、ブラウザはプレビューの試行をスキップし、ファイルを直接ダウンロードします。説明<video>または<audio>HTML タグは、メディアの再生を優先し、attachmentダウンロード指示を無視する場合があります。
ドメインがすでに別のバケットにマッピングされているというメッセージが表示され、ドメインマッピングが失敗した場合はどうすればよいですか?
ドメインがすでに別のバケットにマッピングされている場合は、次のいずれかのソリューションを使用してください。
現在のビジネスに新しいサブドメインを使用します。
example.comドメインがすでに別のバケットにマッピングされている場合、マッピングにはimage.example.comのような新しいサブドメインを使用します。これにより、ドメインレベルでサービスを分離できます。元のバケットからドメインのマッピングを解除し、ターゲットバケットにマッピングします。ドメインのマッピングを解除するには、次の手順に従います。
CDN アクセラレーションを有効にしている場合は、CDN back-to-origin エラーを防ぐために、まず CDN サービスでオリジンサーバー情報を変更し、CDN ドメイン名が OSS バケットエンドポイントを指さないようにする必要があります。詳細については、「オリジンサーバーの構成」をご参照ください。
バケットリスト ページに移動し、ドメインが現在マッピングされているバケットの名前をクリックします。左側のナビゲーションウィンドウで、 をクリックします。
ドメインリストでターゲットドメインを見つけ、アクション列の アンタイド をクリックします。表示されるダイアログボックスで、OK をクリックしてドメインのマッピングを解除します。
API を使用してドメイン名をマッピングする際に、NeedVerifyDomainOwnership エラーが表示された場合はどうすればよいですか?
このエラーは、ドメインの所有権を検証していないことを示しています。次の手順を実行して、この問題を解決できます。
ドメインの所有権の検証に必要な
CnameTokenを作成するには、CreateCnameToken 操作を呼び出します。説明デフォルトでは、
CnameTokenは作成後 72 時間で有効期限が切れます。有効期限が切れる前にトークンを再度作成しようとすると、既存のCnameTokenが返されます。ドメインの所有権の検証を完了するには、ドメイン名サービスプロバイダーで TXT レコードを設定します。
カスタムドメイン名をマッピングするには、PutCname 操作を呼び出します。
カスタムドメイン名が機能しない、または構成後に古いアドレスを指しているのはなぜですか?
これは、ご利用のローカルマシンおよびキャリアにおける DNS キャッシュの遅延が原因である可能性があります。解決効率を向上させるため、さまざまなレベルの DNS ノードは、TTL 値によって決定される期間、ドメイン解決結果をキャッシュします。CNAME レコードを変更した後、TTL の有効期限が切れるまで、古いキャッシュが引き続きリクエストを古いアドレスに転送する場合があります。10 分間待ってから再試行するか、ローカル DNS キャッシュを手動でクリアすることを推奨します。
Windows
ipconfig /flushdnsmacOS
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponderLinux
sudo systemd-resolve --flush-cachesCNAME レコードを追加する際に、既存の A レコードとの競合が報告された場合はどうすればよいですか?
DNS プロトコル仕様によると、CNAME レコードは同じホスト名の A レコードと共存できません。ご利用のドメイン名にすでに別のサービス (ECS や WAF など) を指す A レコードがある場合、2 つのソリューションがあります。
新しいサブドメインを使用して OSS にマッピングします。たとえば、ルートドメイン
example.comにすでに A レコードがある場合、oss.example.comを使用して OSS にマッピングできます。この 2 つは互いに干渉しません。現在のドメイン名を使用する必要がある場合は、CNAME レコードを追加する前に A レコードを削除する必要があります。A レコードを削除する前に、それに依存するサービスがないことを確認してください。そうしないと、元のサービスが中断される可能性があります。
「ドメイン B がドメイン A に CNAME され、ドメイン A が OSS にマッピングされている」場合にアクセスが失敗するのはなぜですか?
OSS は HTTP リクエストヘッダーの Host フィールドを厳密に検証し、バケットに実際にアタッチされているドメイン名と正確に一致することを要求します。ドメイン B にアクセスすると、Host ヘッダーには domain B が含まれますが、これはアタッチされたドメイン名と一致しないため、検証が失敗します。したがって、ドメイン名間の CNAME 転送を通じて実装するのではなく、パブリックネットワークアクセスに使用されるドメイン名をバケットに直接アタッチする必要があります。
カスタムドメイン名をマッピングした後も、古いファイル URL を使用できますか?
はい、可能です。カスタムドメイン名をマッピングしても、OSS が提供するデフォルトドメイン名経由のアクセスには影響しません。両方の方法を共存させることができます。古いファイル URL を取得するには、「署名付き URL を使用してファイルをダウンロードまたはプレビューする」をご参照ください。
カスタムドメイン名が OSS バケットにマッピングされた後、パブリックエンドポイント経由でのみアクセスできますか?内部エンドポイントにマッピングできますか?
OSS バケットにマッピングされたカスタムドメイン名は、パブリックネットワークアクセス専用であり、内部ネットワークアクセスには使用できません。
OSS のカスタムドメイン名機能は、DNS サービスプロバイダーで CNAME レコードを作成することで動作します。このレコードは、ご利用のドメインを OSS バケットのパブリックエンドポイント (例: example-bucket.oss-<region-id>.aliyuncs.com) にマッピングします。このメカニズムは、独自のドメイン経由で OSS リソースへのパブリックアクセスを可能にするように設計されています。
対照的に、内部ネットワークアクセスでは、Alibaba Cloud が提供する内部エンドポイント (例: oss-<region-id>-internal.aliyuncs.com) を使用する必要があります。このプライベートアクセスは、バケットと同じリージョンおよび VPC 内にある Alibaba Cloud リソース (ECS や Function Compute など) に制限されます。内部エンドポイントはパブリック DNS では解決できず、CNAME レコードのターゲットにはできないため、カスタムドメイン名は内部ネットワークアクセスには使用できません。
カスタムドメイン名を使用すると、リソースファイルへの HTTP リクエストが HTTPS に強制リダイレクトされるのはなぜですか?
これは、ご利用のカスタムドメイン名で HTTPS への強制リダイレクト機能が有効になっているためです。この設定により、すべての受信 HTTP リクエストが自動的に HTTPS 相当にリダイレクトされます。
OSS 自体は強制リダイレクトをサポートしていませんが、この動作は CDN レベルで有効になります。カスタムドメイン名と HTTPS 証明書で CDN を使用する場合、CDN HTTPS 設定で強制リダイレクト (HTTP → HTTPS) オプションをアクティブ化できます。これにより、CDN は任意の HTTP リクエストに対して 301/302 レスポンスを返し、ブラウザに HTTPS 経由でリクエストを再送信するように促します。
リソースファイルへの HTTP アクセスを許可したい場合は、CDN コンソールに移動し、関連するドメイン名を見つけて、リダイレクトタイプ を デフォルト (HTTP と HTTPS の両方をサポート) に変更します。詳細については、「プロトコルリダイレクトの構成」をご参照ください。