Google Cloud Storage APIへのアクセスが「403: The project to be billed is associated with a closed billing account.」となったので対処した話

Google Cloud Storage上のバケットにAPI経由でファイルをアップロードする処理がエラーで失敗するようになった事象とその際に行った対処についてご紹介します。
2019.12.15

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、CX事業本部の若槻です。

稼働中のシステムで、Google Cloud Storage上のバケットにAPI経由でファイルをアップロードする処理がエラーで失敗するようになった事象とその際に行った対処についてご紹介します。

事象

わたしが以前に投稿した以下の記事のシステムで事象は発生しました。

留守電音声が添付されたメールをOffice 365で受信するたびに実行されるMicrosoft Power Automateのフローが、下記のように先月よりリトライ含め実行が失敗していました。

image.png

実行履歴の詳細を見てみると、下記のようにメールから取得した添付ファイルをアップロードするためにGoogle Cloud Storage APIを叩いた時([HTTP バケットへアップロード]アクションの部分)にエラーが発生しているようです。

image.png

エラーが発生したアクションの詳細を見てみると、下記のようにAPIへのリクエストに対して403エラーがレスポンスされています。

image.png

エラーレスポンスは以下になります。The project to be billed is associated with a closed billing account.というエラーメッセージが出ています。

{
  "error": {
    "code": 403,
    "message": "The project to be billed is associated with a closed billing account.",
    "errors": [
      {
        "message": "The project to be billed is associated with a closed billing account.",
        "domain": "global",
        "reason": "accountDisabled",
        "locationType": "header",
        "location": "Authorization"
      }
    ]
  }
}

解決

原因は、当該のGoogle Cloud Storageを利用しているGCPアカウントの無料トライアル期間(12ヶ月間)が終了していたためでした。

Google Cloud Platform(GCP)では、サービスを自分で試して学習するための無料のリソースを無料枠として提供しています。GCP のご利用が初めてで基礎を学ぶ必要がある方や、すでにご利用中で新しいソリューションを試したい方などを対象としています。

GCP の無料枠は以下の 2 つで構成されています。

・12 か月間の無料トライアル(GCP サービスで使用できる $300 相当のクレジット付き)。
・Always Free(使用制限の枠内で多くの一般的な GCP リソースに無料でアクセス可能)。

よって、次のようにGoogle Cloud Platform Consoleより有料アカウントにアップグレードをする対処を行いました。

無料トライアルが終了した後に GCP を使用するには、有料アカウントにアップグレードする必要があります。トライアルが終了する前にアップグレードして、有料アカウントの機能(GPU の使用など)を利用することもできます。

アカウントをアップグレードするには

Google Cloud Platform Console で、無料トライアルから有料アカウントにアップグレードできます。ページ上部の [有効化] ボタンをクリックします。[有効化] ボタンが表示されていない場合は、ページの右上にある [無料トライアルのステータス] 無料トライアルのステータス アイコン をクリックすると、[有効化] ボタンが表示されます。

以上の対処により、Google Cloud Storage APIに正常にアクセスできるようになり、再びフローが正常に実行されるようになりました。

image.png

根本原因

今回の事象の根本原因は以下のようなものがありました。

  1. Google Cloud Platformは無料トライアル期間が過ぎたら自動的に有料アカウントにアップグレードされると思い込んでいた。
  2. 無料トライアル期間が終了間近/終了した際の通知はGoogleから特になかった。
  3. Power Automateのフロー失敗時のエラー通知を構成していなかった。(以前まではOffice 365のコンソールを毎日のように開いていたため、画面上のバッジ通知ですぐに気付けていた)

ひとまず原因3.の対処としてフロー失敗時のエラー通知を構成したいと思います。

おわりに

有料アカウントにアップグレードする前に無料トライアル期間が完了してしまった場合は、以下のように使い方によっては大きな影響のある処置がGCPにて行われるため、期間内のアップグレードを忘れないようにご注意ください。参考になれば幸いです。

無料トライアルは、すべてのクレジットを使い切った時点、または 12 か月が経過した時点で終了します。無料トライアルの終了時には、次の点に留意してください。

・GCP を引き続き使用するには、有料アカウントにアップグレードする必要があります。 ・トライアルの期間中に作成したリソースはすべて停止されます。 ・Compute Engine に保存したデータはすべて失われます。 ・アカウントには 30 日間の猶予期間があり、この期間中に、トライアルの期間中に使用したリソースとデータを復元できます。

以上