クラウドネイティブ アプリケーションを構築するための 6 つのセキュリティのベスト プラクティス

クラウドネイティブ アプリケーションを構築するための 6 つのセキュリティのベスト プラクティス

翻訳者 |劉望洋

レビュー |チョンロウ

クラウドネイティブ アーキテクチャにより、ソフトウェアの開発、展開、管理モデルは根本的に変化しました。スケーラビリティ、回復力、柔軟性の面で大きな利点がある一方で、セキュリティ上の特有の課題も生じます。

これらの課題は、従来のモノリシック アプリケーションのセキュリティ問題とは大きく異なります。開発者にとって、これらの違いを理解することは非常に重要です。特に、最新のクラウドネイティブ アプリケーションでは、従来のセキュリティ上の課題と新たなセキュリティ上の課題の両方が存在するため、開発者は包括的に対応する必要があります。

この記事では、安全で回復力があり、スケーラブルなクラウド ネイティブ アプリケーションを構築するための 6 つの主要なセキュリティ プログラミングのベスト プラクティスについて説明します。これらのプラクティスは望ましいだけでなく、あらゆるクラウド ネイティブ アプリケーションの包括的なセキュリティ アーキテクチャの基礎となります。

クラウドネイティブ アプリケーションのための 6 つのセキュリティのベスト プラクティス

  • ゼロトラストアーキテクチャ
  • 入力検証
  • ネットワーク露出制御
  • 安全なファイルストレージ
  • 最小権限の原則
  • ログデータの感度低下

ゼロトラストアーキテクチャ

クラウドネイティブ エコシステムでは、マイクロサービスのモジュール設計には利点と課題の両方があります。マイクロサービスを開発する場合、それがより広範なアプリケーションでどのように使用されるかを事前に想定することはできません。マイクロサービスの中核となる特性は再利用性とモジュール性です。つまり、もともと特定の目的のために設計されたマイクロサービスは、将来的にセキュリティ要件がまったく異なるアプリケーションで使用される可能性があります。

したがって、クラウドネイティブ環境では、マイクロサービスごとにゼロトラスト戦略を採用することが重要です。このアプローチにより、サービス間の盲目的な信頼がなくなるため、使用方法に関係なく各マイクロサービスのセキュリティ保護レベルが向上します。ゼロ トラストの 2 つのコア コンポーネントは、マイクロセグメンテーションとサービス間認証です。

マイクロセグメンテーションとは、アプリケーションをより小さく管理しやすい部分 (マイクロサービス) に分割し、各部分に独立したセキュリティ対策を実装するプロセスです。これにより、特定の部位が攻撃された場合でも、その影響を最小限の範囲に抑えることができます。たとえば、クラウドネイティブの電子商取引アプリケーションでは、在庫管理、支払い処理、ユーザー認証を独立したマイクロサービスに分割し、各サービスに適切なセキュリティ対策を実装できます。

サービス間認証はユーザー認証に限定されず、データを交換する前にサービスが互いの ID を確認することも保証します。これは、相互 TLS (mTLS) などのテクノロジーを通じて可能になります。たとえば、電子商取引プラットフォームでは、在庫マイクロサービスが支払いマイクロサービスに支払い情報の提供を要求するときに、相互 TLS を使用して両者の ID を検証できます。

入力検証

SQL インジェクションやファイル パス トラバーサルなどの攻撃は、多くの場合、弱い入力検証メカニズムを悪用して実行されます。複数の API を含むクラウドネイティブ アプリケーションでは、この攻撃のリスクはさらに大きくなります。したがって、各入力の厳格な検証とサニタイズがセキュリティ維持の鍵となります。エンドユーザー、他のサービス、または内部データベースから発信されたデータはすべて、潜在的なセキュリティ上の脅威と見なす必要があります。

厳格な API セキュリティ対策には、型チェック、境界検証、ホワイトリストの確立の実装が含まれます。型チェックと境界検証では、入力データの型を検証して期待値を満たしていることを確認し、オーバーフロー、アンダーフロー、または悪意のある入力に基づくその他の攻撃を防ぐために、さまざまな入力の型に制限を設定する必要があります。

たとえば、電子商取引サイトの「購入数量」フィールドでは、正の整数のみを受け入れ、負の数や数値以外の文字を拒否し、大量の誤った注文や有害な注文を防ぐために最大数量制限(100 など)を設定する必要があります。

ホワイトリストには、許可された入力または値の範囲のリストを維持し、これらの事前設定された基準を満たす入力のみを受け入れることが含まれます。たとえば、色の入力を受け入れるカスタム機能の API では、ホワイトリストを使用して、赤を表す #FF0000 などの特定の色コードを制限する必要があります。

ネットワーク露出制御

インターネットに公開されるアプリケーションの部分が増えるほど、攻撃対象領域も大きくなります。これは、機能が多くの疎結合サービスに分散されることが多いクラウド ネイティブ アプリケーションにとって特に重要です。インターネット アクセスを必須コンポーネントのみに制限することで、潜在的な攻撃ポイントを減らすことができます。主要なネットワーク露出制御には、ファイアウォール ルール、仮想プライベート クラウド (VPC) 構成、構成ドリフトの管理が含まれます。

高度なファイアウォール設定を適用して、不要なポートをすべてブロックし、ネットワーク セグメンテーションを通じてさまざまなサービスを分離して、各サービスの露出を最小限に抑えます。たとえば、支払いゲートウェイをメインのアプリケーション サービスから分離することで、1 つのサービスが侵害された場合でも、他のサービスは安全なままになります。

VPC をデプロイして、アプリケーションのさまざまな部分を分離します。これには、さまざまなサービス タイプごとに個別のサブネットを設定し、ネットワーク アクセス制御リスト (ACL) を通じてそれらの間のトラフィックを制限することが含まれます。たとえば、電子商取引アプリケーションは、ユーザー認証、製品カタログ、支払い処理などのさまざまな VPC に分割できます。

サービス構成のドリフトを監視します。多くの場合、無関係な API リクエストに対応するための変更など、他の場所での変更により、内部サービスが不注意で公開されてしまうことがあります。予期しない構成の変更に対してアラートを設定し、変更があった場合はすぐに対処します。

たとえば、管理者のみが使用する内部レポート サービスが、無関係な API の変更により、一般の従業員や一般に誤って公開されたとします。構成ドリフト管理ツールは、開発チームにこの変更を警告し、すぐに修正するように促すことができます。

安全なファイルストレージ

データ、特に機密情報を含むファイルを保存する場合は、より高いレベルのセキュリティ対策を講じる必要があります。データベース自体にセキュリティ上のリスクがありますが、不適切に処理されたファイルストレージはさらに危険になる可能性があります。保存されたファイル、特に機密データを含むファイルは、アクセスまたは使用されていないとき(つまり、保存されているとき)は暗号化する必要があります。さらに、これらのファイルへのアクセスを制限するために、厳格なアクセス制御手段が必要です。

安全なファイル保存方法には、保存中のファイルの暗号化やロールベースのアクセス制御 (RBAC) の実装が含まれますが、これらの「一時」ファイルは実際には一時的ではない可能性があるため、一時ファイルの安全な管理にも特別な注意を払う必要があります。

データ ストレージのセキュリティを確保するには、ストレージ プラットフォームが提供する組み込みの暗号化テクノロジを常に使用してください。たとえ攻撃者が物理的なストレージ デバイスにアクセスできたとしても、暗号化によりデータは読み取れなくなります。たとえば、クラウド ストレージ ソリューションでは、ユーザー データは保存される前に組み込みの暗号化方式を使用して暗号化されます。

保存されたファイルへのアクセスを管理するためにロールベースのアクセス制御を実装し、すべてのアクセス アクティビティをログに記録して監査証跡を作成します。たとえば、ヘルスケア アプリケーションでは、特定の医療関係者のみが患者の記録にアクセスできる場合があります。

処理中またはデバッグ中に生成される一時ファイルは、誤って機密情報が含まれることを防ぐために慎重に扱う必要があります。これらのドキュメントのクリーンアップを自動化し、必要以上に長く保持されないようにするためのプロセスを実装する必要があります。

たとえば、開発者がユーザー認証の問題のトラブルシューティング中に一時ログを生成する場合、機密データが残らないように、問題が解決された後にそれらのログを自動的にクリアすることが重要です。不注意はセキュリティ侵害につながる可能性があることに留意してください (Microsoft のような大企業でも例外ではありません)。そのため、クリーンアップ プロセス中は警戒を怠らないことが重要です。

最小権限の原則

クラウド ネイティブ アプリケーション開発では、最小権限の原則を実装することが非常に重要です。サービスには、その機能を実行するために必要な権限のみを与える必要があります。これにより、1 つのサービスの侵害がシステムの他の部分の攻撃に使用されるリスクが最小限に抑えられます。コードに最小権限の原則を適用するための具体的なプラクティスとしては、権限の範囲を制限すること、一時的な資格情報を使用すること、定期的な権限監査を実行することなどがあります。

各コンポーネントの特定の責任と一致するように権限設定を調整します。たとえば、API の権限設定は見落とされがちです。 API には本当に読み取りおよび書き込み権限が必要ですか?その場合は、2 つの異なる API に分割し、各 API に必要な最小限の権限のみを付与することを検討してください。

たとえば、ユーザー登録サービス (データの変更が必要になる場合があります) には、データ レポートのみを提供する読み取り専用サービスとは異なるアクセス許可スコープが必要です。

より多くの権限を必要とする操作の場合は、有効期間の短い資格情報を使用し、タスクが完了するとすぐに有効期限が切れるようにします。たとえば、昇格された権限を必要とするバックアップ操作を実行する場合、一時的な資格情報を使用して、バックアップが完了したらすぐに有効期限を切れるようにすることができます。

定期的かつ頻繁に監査を実施して、権限が緩く設定されているインスタンスを特定し、是正措置を講じます。自動化ツールを使用して、これらの過剰な権限にフラグを立て、改善を提案することができます。たとえば、自動監査ツールを使用してシステム上の役割と権限を定期的に確認し、過剰な権限のインスタンスを特定して、それらの権限をより狭い範囲に削減する手順を実行します。

ログデータの感度低下

ログ記録は監視とデバッグの重要な部分ですが、ログには機密情報が含まれている可能性があります。データ マスキングにより、ログに機密情報が含まれる場合、その情報がマスクされたバージョンに置き換えられ、データ漏洩のリスクが軽減されます。データ編集を実装するための主な手順には、自動編集ツールの使用、集中ログ管理、厳格なログ保持ポリシーが含まれます。

専門的なソフトウェア ツールを使用して、ログ内の機密情報を自動的に識別して編集します。これらのツールは、社会保障番号、クレジットカード番号、パスワードなどの機密情報のパターンを認識するようにプログラムできます。たとえば、金融アプリケーションでは、ログに記録する前にクレジットカード情報が自動的に編集され、参照用に最後の 4 桁のみが保持されるようにします。

集中ログ管理システムを導入して、さまざまなソースからのログを集約します。これにより、監視が強化されるだけでなく、すべてのログに感度低下および編集ポリシーが均一に適用され、機密データの漏洩のリスクが軽減されます。たとえば、複数のマイクロサービスを備えた分散クラウドネイティブ アプリケーションでは、すべてのサービスのログが中央システムに集約され、すべての受信ログにデータ マスキング ルールが均一に適用されます。

厳格なログ保持ポリシーを導入し、コンプライアンス要件に準拠させます。保存期間を超えたログを自動的に削除します。たとえば、EU 一般データ保護規則 (GDPR) に準拠するために、個人データを含むログは、監査または法的理由で保持する必要がない限り、30 日後に自動的に削除されるように設定されています。

より良いセキュリティ対策に向けて

安全で回復力があり、スケーラブルなクラウドネイティブ アプリケーションを構築するには、従来のアプリケーション開発とは異なるベスト プラクティスが必要です。重要なのは、ゼロ トラスト アーキテクチャからログ データ マスキングまで、これらのプラクティスをできるだけ早い段階で開発ライフサイクルに統合し、セキュリティを設計および展開プロセスの不可欠な部分にすることです。

同時に、実際の開発環境でこれらのセキュリティ プラクティスを実装する際の課題を理解することも重要です。ペースの速い開発環境では、これらすべてのセキュリティ対策を統合するのは困難な作業のように思えるかもしれません。ただし、開発者は関連するリスクを認識する必要があります。重要なのは、一夜にして完璧を達成することではなく、各プラクティスを優先事項として理解し、特定のアプリケーションのニーズとコンテキストに基づいて、どのプラクティスをいつ統合するかを戦略的に決定することです。

サイバーセキュリティの状況が進化し続ける中、これらの複雑な分散システムを保護するための戦略もそれに追いつく必要があります。この記事で説明されているプラ​​クティスと洞察を理解することは、洞察力に富み柔軟なクラウド ネイティブ アプリケーションのセキュリティ戦略を策定するのに役立ちます。

翻訳者について

51CTO コミュニティ エディターの Liu Wangyang (ニックネーム: Mingming Ruyue) は、大企業のシニア Java エンジニアであり、5 年間の開発経験を持ち、複数の主流技術ブログ プラットフォームでブログ エキスパートの称号を保持しています。

原題:クラウドネイティブ アプリケーションのための 6 つのセキュリティ ベスト プラクティス、著者: Yossi Pik

<<:  G Bank がフルスタック クラウド コンテナ環境でコストを削減し、効率を高める方法を模索 - 基礎

>>:  K8s のアップグレードにより Didi が 12 時間停止したのですか?

推薦する

新しいルールに基づいて事前にSEO計画を立てることは、SEOプロジェクトの成功の前提条件です。

ウェブサイトの SEO 最適化を成功させるための前提条件は、事前に SEO プランを計画することです...

お客様、SEO アウトソーシングの準備はできていますか?

顧客が初めて王世凡と協力関係を築くと、王世凡は顧客に何度も「本当にウェブサイトを最適化しますか?」「...

iPhoneの10周年を迎え、モバイルゲームとApp Storeも「9年目の痒み」を経験した

「Appleは今日、ゲーム業界で最も重要な企業となった。」本日(6月29日)は、Appleの携帯電話...

yunserver-ロサンゼルス peer1 データセンター VPS の簡単な評価

私は、yunserver.com の Frozen から、XEN 仮想化に基づく peer1 ロサン...

Google、CNNICが中間者攻撃用の証明書を発行したと発表

Googleの公式セキュリティブログによると、GoogleはCNNICがGoogleドメイン名に対し...

ウェブデザインの黄金比 黄金分割法のウェブサイトデザインへの応用

ウェブデザイナーとして、プロジェクトを開始するときは、ウェブページのレイアウトについてよく検討します...

ソーシャルメディアWeiboでのプロモーションツールの分析

今ではタオバオアフィリエイトになるのはますます難しくなっていると言わざるを得ません。市場全体の発展環...

中国科学院の報告書: 360 製品には 3 つの大きなプライバシーとセキュリティの問題がある

360 ブラウザがユーザーのプライバシーを侵害しているという話題が再び注目を集めています。 11月2...

ワンストップビデオクラウドサービスを提供 UCloudオーディオおよびビデオSDKが全面アップグレード

スマートフォンの普及、4Gネットワ​​ーク料金の引き下げ、5G業界標準の確立により、ユーザーがコンテ...

Green Radish 2.0を理解する方法: ソフト記事は独創性と品質に重点を置く必要があります

今年2月、百度は外部リンクの売買や外部リンクの不正行為を取り締まるために、緑大根アルゴリズム1.0を...

crissic レビュー/SSD ハードドライブ/512M メモリ/3 コア/OVZ

Crissic は、SSD ハード ドライブを搭載した VPS [crissic-$12/年/256...

クラウドコンピューティングコアテクノロジー Dockerチュートリアル: Dockerデーモン dockerd 安全でないレジストリ

Docker はプライベート レジストリを安全か安全でないかを判断します。このセクションの残りの部分...

Zunku.com の資金調達ミス: 誤ってエンジェルと結婚し、VC と離婚

国内のホットマネーが株式投資分野にどんどん参入し、起業家や投資家が衝動的になっているため、両者が一目...

肉家餅を売って1日800ドル稼ぐ洛陽のおじさんに学ぶマーケティングのやり方

百度で「洛陽叔父」という4つの単語を入力すると、200万件以上の検索結果が表示されます。彼がなぜ有名...

Danmu 動画サイトの成長に混乱: ACG 文化の海賊版が蔓延

【概要】同時に、年齢を重ねるにつれて、一部のユーザーは家庭生活を離れ始め、日本の二次元文化に焦点を当...