トラブルシューティング

401: Unauthorized

問題: 一般公開のバケットに直接、または Cloud CDN 経由でリクエストすると、HTTP 401: UnauthorizedAuthentication Required のレスポンスで失敗する。

解決策: クライアントまたは中間プロキシによって、Cloud Storage へのリクエストに Authorization ヘッダーが追加されていないことを確認します。Authorization ヘッダーを含むリクエストは、空の場合でも、認証試行であるかのように検証されます。

403: Account Disabled

問題: バケットを作成しようとしましたが、403 Account Disabled エラーが発生しました。

解決策: このエラーは、関連付けられているプロジェクトの課金がまだ有効になっていないことを示しています。課金を有効にする手順については、プロジェクトの課金を有効にするをご覧ください。

課金が有効になっているにもかかわらず、このエラー メッセージが引き続き表示される場合は、サポートに連絡してプロジェクト ID と問題の状況をお伝えください。

403: Access Denied

問題: バケット内のオブジェクトを一覧表示しようとしましたが、403 Access Denied エラー / Anonymous caller does not have storage.objects.list access のようなメッセージが返されました。

解決策: 認証情報が正しいことを確認します。たとえば、gsutil を使用している場合は、.boto ファイルに保存されている認証情報が正しいことを確認します。また、コマンド gsutil version -lconfig path(s) エントリを確認し、想定される .boto ファイルを使用していることを確認してください。

正しい認証情報を使用していることを確認したうえで、リクエストが(HTTPS ではなく)HTTP を使用してプロキシ経由でルーティングされている場合は、プロキシがそれらのリクエストから Authorization ヘッダーを削除するように構成されていないかを確認します。削除するように構成されている場合は、リクエストに HTTP ではなく HTTPS を使用していることを確認します。

409: Conflict

問題: バケットを作成しようとしましたが、次のエラーが発生しました。

409 Conflict. Sorry, that name is not available. Please try a different one.

解決策: 使用しようとしたバケット名(gs://catsgs://dogs など)は、すでに使用されています。Cloud Storage では、グローバルな名前空間を使用しているため、既存のバケットと同じ名前を付けることはできません。まだ使用されていない名前を選んでください。

プロキシ サーバー

問題: プロキシ サーバー経由で接続しています。どのような操作が必要ですか。

解決策: プロキシ サーバー経由で Cloud Storage にアクセスするには、以下のドメインへのアクセスを許可する必要があります。

  • accounts.google.com: gsutil config を介して OAuth2 認証トークンを作成するため
  • oauth2.googleapis.com: OAuth2 トークンの交換を実行するため
  • *.googleapis.com: ストレージ リクエスト用

プロキシ サーバーまたはセキュリティ ポリシーがドメインによるホワイトリストをサポートしておらず、代わりに IP ネットワーク ブロックによるホワイトリストを要求する場合、プロキシ サーバーを Google IP アドレスの全範囲に対して構成することをおすすめします。アドレスの範囲を確認するには、ARIN で WHOIS データのクエリを行います。定期的にプロキシ設定を確認し、Google の IP アドレスと一致させることをおすすめします。

oauth2.googleapis.comstorage.googleapis.com を一度だけ検索して取得した個別の IP アドレスでプロキシを構成することはおすすめできません。Google サービスは、時間の経過に伴って変化する場合がある多数の IP アドレスにマッピングされた DNS 名を介して公開されているため、一度だけの検索に基づいてプロキシを構成すると、Cloud Storage への接続が失敗する原因になることがあります。

プロキシ サーバーを介してリクエストをルーティングする場合は、ネットワーク管理者に確認して、プロキシによって認証情報を含む Authorization ヘッダーが取り除かれないようにしてください。Authorization ヘッダーがない場合、リクエストは拒否され、MissingSecurityHeader エラーが発生します。

gsutil stat

問題: gsutil stat コマンドを使用してサブディレクトリのオブジェクトのステータスを表示しようとしましたが、エラーが発生しました。

解決策: Cloud Storage はバケットのオブジェクトの保存にフラットな名前空間を使用しています。 オブジェクト名にスラッシュ(/)を使用してオブジェクトが複数の階層からなる構造の中にあるように見せることはできますが、gsutil stat コマンドは最後のスラッシュをオブジェクト名の一部として扱います。

たとえば、コマンド gsutil -q stat gs://my-bucket/my-object/ を実行すると、gsutil は、my-bucket/my-object/ の下にネストされているオブジェクトへの操作とは異なり、オブジェクト my-object/ に関する情報を最後のスラッシュを含めて検索します。その名前のオブジェクトが存在しない場合、オペレーションは失敗します。

サブディレクトリを一覧表示するには、代わりに gsutil ls を使用します。

gcloud auth

問題: gcloud auth コマンドを使用して gsutil を認証しようとしましたが、バケットまたはオブジェクトにアクセスできません。

解決策: システムにスタンドアロン版と Cloud SDK の両方がインストールされている場合があります。gsutil version -l コマンドを実行して、using cloud sdk の値を確認します。False と指定すると、システムがコマンドを実行するときにスタンドアロンの gsutil が使用されます。このバージョンの gsutil をシステムから削除するか、gsutil config コマンドを使用して認証できます。

ウェブサイトとして構成したバケット

ここでは、静的ウェブサイトをホストするバケットを設定するときに発生する可能性がある一般的な問題について説明します。

HTTPS によるサービスの提供

問題: ロードバランサを使用せずに HTTPS 経由でコンテンツを配信するにはどうしたら良いですか。

解決策: https://storage.googleapis.com/my-bucket/my-object などの直接 URI を使用すると、HTTPS 経由で静的コンテンツを配信できます。SSL 経由でカスタム ドメインからコンテンツを配信する別のオプションについては、次をご覧ください。

ドメインの所有権の証明

問題: ドメインを確認できません。

解決策: 通常、Search Console の確認プロセスでは、ドメインにファイルをアップロードするように指示されますが、関連するバケットを最初に作成しないと、これを行うことはできません。バケットは、ドメインの所有権の証明を行った後にしか作成できません。

この場合、ドメイン名プロバイダの確認方法を使用して所有権を確認します。これを実行する手順については、所有権の確認をご覧ください。ドメインの確認はバケットの作成前に行えます。

アクセスできないページ

問題: ウェブサイトから提供されるウェブページでエラー メッセージ Access denied が表示されました。

解決策: オブジェクトが一般公開として共有されていることを確認します。共有されていない場合は、その方法についてデータの一般公開をご覧ください。

以前にオブジェクトをアップロードして共有するよう設定していても、新しいバージョンのオブジェクトをアップロードした場合は、オブジェクトを一般公開として共有するよう再度設定する必要があります。これは、新しいバージョンのオブジェクトをアップロードすると、一般公開権限が置換されるためです。

コンテンツのダウンロード

問題: ページのコンテンツがブラウザに表示されず、ダウンロードするように求められます。

解決策: ウェブ コンテンツ タイプがないオブジェクトとして MainPageSuffix を指定すると、ページは表示されず、ページにアクセスしたユーザーはコンテンツをダウンロードするように求められます。この問題を解決するには、content-type メタデータ エントリを適切な値(text/html など)に更新します。これを行う方法については、オブジェクトのメタデータを編集するをご覧ください。

storage.cloud.google.com を使用したたコンテンツのダウンロード

問題: storage.cloud.google.com から一般公開コンテンツをダウンロードしているときに、公開オブジェクトに移動すると、ブラウザに 403 - Forbidden エラーが表示されます

https://storage.cloud.google.com/BUCKET_NAME/OBJECT_NAME

解決策: storage.cloud.google.com を使用してオブジェクトをダウンロードする方法を認証によるブラウザでのダウンロードといいます。この方法では、オブジェクトが allUsers に公開されている場合でも常に Cookie ベースの認証を行います。Cloud Storage で監査ログが有効になっている場合、その機能の制限により、認証によるブラウザでのダウンロードが無効になります。監査ログが有効な場合に、このようなダウンロードを行うと 403 レスポンスが返されます。

この問題を回避するには、ログを監査するか、未認証のダウンロードをサポートする直接 API 呼び出しに切り替えます。

301: Moved Permanently

問題: ディレクトリ パスにアクセスすると空のオブジェクトと 301 HTTP レスポンス コードが返されます。

解決策: http://www.example.com/dir/ などのディレクトリにアクセスしたときに、ブラウザがゼロバイトのオブジェクトをダウンロードして、301 HTTP レスポンス コードが表示された場合、バケットにはその名前の空のオブジェクトが含まれている可能性が非常に高くなります。これが該当することを確認し、問題を解決するには、次のようにします。

  1. Google Cloud Console で Cloud Storage ブラウザを開きます。
    Cloud Storage ブラウザを開く
  2. Google Cloud Console の上部にある [Cloud Shell をアクティブにする] ボタンをクリックします。Cloud Shell をアクティブにする
  3. gsutil ls -R gs://www.example.com/dir/ を実行します。出力に http://www.example.com/dir/ が含まれている場合は、そのロケーションに空のオブジェクトがあります。
  4. コマンド gsutil rm gs://www.example.com/dir/ で空のオブジェクトを削除します。

これで、http://www.example.com/dir/ にアクセスして、空のオブジェクトの代わりにそのディレクトリの index.html ファイルを返すことができます。

Cloud Storage ブラウザのエラーについて

問題: Cloud Storage ブラウザを使用してオペレーションを行うと、一般的なエラー メッセージが表示されます。たとえば、バケットを削除しようとするとエラー メッセージが表示されますが、オペレーションが失敗した詳しい理由は表示されません。

解決策: Google Cloud Console の通知を使用して、失敗したオペレーションに関する詳細情報を確認します。

  1. Google Cloud Console のヘッダーにある [通知] ボタンをクリックします。

    Notifications

    プルダウンに、Google Cloud Console で最近実行されたオペレーションが表示されます。

  2. 詳細を確認したい項目をクリックします。

    ページが開き、操作に関する詳細情報が表示されます。

  3. 各行をクリックして、詳細なエラー情報を展開します。

    次に、バケット削除オペレーションが失敗したときのエラー情報の例を示します。これは、バケット保持ポリシーによりバケットが削除されなかったことを表しています。

    バケット削除エラーの詳細

次のステップ