クラウドネイティブ アプリケーションを構築するための 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 時間停止したのですか?

推薦する

vmbox -$48/4G メモリ/200G ハードディスク/4T トラフィック/ロサンゼルス/フェニックス/オランダ

vmbox は 2011 年に設立され、7 年間運営されてきました [HostCat での vmbo...

SEO の新時代に向けて準備はできていますか?

検索エンジンのアルゴリズムが継続的に改善されるにつれて、SEO も次々と変化してきました。2012 ...

Hostdare の新しい US cn2 gia ネットワーク + NVMe SSD シリーズ VPS の簡単なレビュー

ホストデアはどうですか? Hostdareは今月、「Premium China Optimized ...

chicagovps 2G メモリ、80G ハードディスク、2IP、2TB トラフィックの VPS をわずか 1 ドルで入手

chicagovps はまさに VPS のスーパーマンです。今回は、皆さんに彼らの VPS を試して...

NexusbytesのAMDシリーズの日本向けVPSの簡単なレビュー

Nexusbytes は長年運営されていますが、その人気はここ 1 ~ 2 年でわずかに高まっただけ...

テンセントの唐道勝氏:デジタルヘルスケアの「両岸と四つの橋」の構築に全力を尽くす

「テンセントヘルスミニプログラムは、全国3,000以上の公立病院とつながっており、電子健康カードは2...

検索エンジンはどのような種類の Web サイトをリストに含める方が価値があると考えていますか?

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています検索エンジ...

企業ウェブサイト向けのオリジナル記事リソースをより適切に見つける方法

最近、ウェブサイトの構築と最適化に忙しく、ブログの更新が遅くなってしまいました。この間、多くの企業サ...

マジック・クアドラント・レポートで再びOracle Fusion ERP Cloudが唯一のリーダーに選出

ガートナーは、製品中心の企業向けクラウド ERP に関する最新の 2020 年マジック・クアドラント...

ランディングページのKPIを評価するためのSEO戦略を深める

マーケティングウェブサイトの構築では、SEO戦略を深めるためにランディングページを作成する計画を立て...

Dogyun:「韓国」データセンター「マルチラインBGP最適化」VPSの簡単なレビュー

韓国はアジアの中で私たちに最も近い国の一つであり、物理的な距離が速度を決定することは明らかです。 D...

hostkvm: US cn2 gia vps (必須 3 ネットワーク)、30% 割引、月額 6.65 ドル、Windows システムをサポート

Hostkvm は現在、ロサンゼルス データ センターの US CN2 GIA VPS を 30% ...

認知キーワードはウェブサイトを新たな高みへ導く

キーワードの問題については、インターネット上に何千もの意見があるはずです。おそらく、私は今日もここで...

Webmaster Network からの毎日のレポート: Vancl による Chuke の買収により YouTube はエコシステムのジレンマに陥る

1. Vancl の買収当初: 暖かさを求めて力を合わせるべきか、それとも必要なものを奪うべきか?約...

SEOの最先端を維持するために、ウェブサイトの構造と外部リンクを正しく理解する

みなさんこんにちは。ハルビンのウェブサイトデザイン会社Virtual Reality Designの...