私が理解している限り、私のGoogle Cloud Functionsは世界中からアクセスできます。それらへのアクセスを制御したい場合は、関数自体の一部として許可を実装する必要があります。たとえば、ベアラートークンベースのアプローチを使用できます。これにより、この機能の背後にあるリソースが不正アクセスから保護されます。
ただし、この機能はグローバルに利用できるため、悪意のあるユーザーによってDDoS攻撃を受ける可能性があります。攻撃がGoogleの防御力ほど強くない場合でも、私の機能/サービスは応答している可能性があります。これはいい。ただし、関数へのアクセスを許可していないパーティーが行った関数呼び出しに対しては支払いたくありません。(課金は関数呼び出しの数ごとに行われるため)。 私が請求の責任を負う前に、Google Cloud FunctionsがDDoS攻撃を検出して対応策を有効にするかどうかを知ることが重要なのはそのためです。
クラウド機能と、それらがDDoS攻撃から保護されているかどうかについて、メールをgoogle-cloudサポートに送信しました。エンジニアリングチームからこの回答を受け取りました(2018年4月4日現在):
Cloud FunctionsはGoogleフロントエンドの背後にあり、SYNフラッド、IPフラグメントフラッド、ポートの枯渇など、多くのレイヤー4以下の攻撃を緩和および吸収します。
最近同じ質問をしていて、この情報に出くわしました。あなたの質問に簡単に答えると、Googleはまだ大規模なDDOS攻撃からGCFを自動保護しません。したがって、攻撃の試みによってGoogleインフラストラクチャがクラッシュしない限り、攻撃によって引き起こされたすべてのトラフィックとコンピューティング時間に対して料金を支払う必要があります。
特定のメカニズムがあり、それらのそれぞれがGCFにも適用されるかどうかはわかりませんが、よく見てください。
DDOS保護に関する質問は十分に回答されたと思います。残念ながら、実際には、DDOS保護の有無にかかわらず、大量の料金を請求するのは簡単です。私は20分間で約30ドルの費用を負担しましたが、DDOS保護はどこにもありませんでした。 「私はまだ残っています。私が関数へのアクセスを許可していないパーティーによって行われた関数呼び出しに対して支払いたくありません。 」
それでは、現実的な緩和戦略について話しましょう。グーグルはあなたにあなたの出費に強い制限を課す方法を与えません、しかしあなたがすることができるいろいろなことがあります。
関数が持つことができるインスタンスの最大数を制限します
関数を編集するときに、関数が生成できる同時インスタンスの最大数を指定できます。ユーザーが攻撃する可能性が低い値に設定しますが、攻撃者が攻撃してもすぐには影響しません。その後...
予算アラートを設定します
クラウドコンソールの[請求]セクションで予算を作成し、アラートを設定できます。しかし、これらのアラートは数時間遅れて到着し、睡眠中か何かになる可能性があるため、これにあまり依存しないでください。
関数名を難読化します
これは、関数がプライベートにのみアクセスされる場合にのみ関係します。攻撃者が推測できないように、関数に難読化された名前(おそらくハッシュ化)を付けることができます。あなたの機能が非公開でアクセスされていない場合は、おそらく...
ユーザーとクラウド関数の間のリレーとして機能するようにCompute Engineインスタンスを設定します
Computeインスタンスは固定価格です。攻撃者は速度を落とすことはできますが、ウォレットを壊すことはできません。コンピューティングインスタンスにレート制限を設定できます。ユーザーは、難読化されたクラウド関数名を知ることはなく、リレーのみが認識するため、関数名を推測できない限り、クラウド関数を直接攻撃することはできません。
呼び出しが多すぎる場合、クラウド機能に課金を停止させます
関数が呼び出されるたびに、FirebaseまたはCloud Storageオブジェクトでカウンターをインクリメントできます。このカウンターが高すぎる場合、関数はプロジェクトへの課金を自動的に無効にすることができます。
Googleは、クラウド機能がプロジェクトへの課金を無効にする方法の例を提供します。 https://cloud.google.com/billing/docs/how-to/notify#cap_disable_billing_to_stop_usage
この例では、pub/subの課金に応じて課金を無効にします。ただし、これらのpub/subsの価格は数時間遅れているため、これは不十分な戦略のようです。どこかにカウンターを持つことはより効果的です。
https://cloud.google.com/functions/quotas および https://cloud.google.com/functions/pricing にあるドキュメントを読むと、 HTTP関数に乱用防止策があるようです。 Googleのサーバーを応答不能にするDDoS攻撃と、一部の攻撃者がHTTP関数のURLを知っていて何百万回も呼び出す不正行為とを区別する必要があります。後者の場合は、支払額のみです。
DDoS攻撃は、現在ベータ段階にある Google Cloud Armour によって軽減できます。
関連するGoogleインサイダーの 短い例 とGCセキュリティルール、および対応する 参照ドキュメント も参照してください。