Api クエリの変更について

(こちらは Regarding Changes to API Queries の参考訳です)

いつも CircleCI をご利用いただきありがとうございます。

弊社のインフラチームは、2022 年 8 月 3 日に一部の内向きの通信ポイントの可視性と制御性を向上させる目的で、CDN の設定変更を行いました。

昨日これを完全にデプロイしたところ、想定外の副作用に対するアラートが発生しました。API への特定のリクエストが HTTP「403」エラーで失敗するようになりました。 弊社ではこの障害の原因を特定し、設定を元に戻しました。 失敗し始めたリクエストは、すべてリクエスト本文が含まれた GET リクエストでした。 変更前、弊社システムは GET を受け入れ、追加のペイロードは無視していました。 今回デプロイを行った変更後の CDN 設定では、これらのリクエストを無効とし、拒否するようになりましたが、アップストリームプロバイダーは弊社がこの動作を変更することを許可していません。

弊社ではこの設定を 9月19日 に再び有効化する予定です。この変更をスムーズに行うために、お客様によってはツールの更新が必要な場合があります。 CDN の設定を再び有効化した際に、今回の問題を回避するための方法をご紹介します。

Ruby の使用について

この設定が有効な状態でのログを確認したところ、最も失敗するリクエストは circleci Ruby Gem からのリクエストでした。 あるコミュニティメンバーのおかげで (この問題を最初に知らせてくれた方々の一人でもあります)、現在は更新済みであり、すべてのお客様にバージョン 2.1.0 以降へのアップデートをすべてのお客様に推奨します。

Curl の使用について

Curl で API クエリを行う際は、GET リクエスト時に -d、–data、–data-ascii、–data-binary、–data-raw、–data-urlencode オプションを使用しないでください。

その他のクライアントでも、GET リクエストではリクエスト本文の送信を除外するよう更新が必要な場合があります。 しかし、ほとんどのクライアントで GET リクエストでは本文を送信しないようデフォルトで設定されているため、影響を受けるのはこのデフォルトが上書きされたツールのみであると考えられます。

1 Like