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

推薦する

中国はなぜ「Travel Frog」のようなゲームを作れないのか?

Taptapのゲーム「旅かえる」(日本語:「旅かえる」)のレビューでは、ネットユーザー@萌小黑による...

Baidu Webmaster Platform Lee: Green Radish Algorithm 2.0 のペナルティ方法は何ですか?

A5ウェブマスターネットワーク(http://www.admin5.com/)は7月4日、Baidu...

2020 年の SD-WAN: 注目すべき 6 つのトレンド

[51CTO.com クイック翻訳] 多くのベンダーは、クラウド エントリ チャネル、主要な Saa...

クラウド移行のベストプラクティス

企業がクラウドに移行する理由は、管理オーバーヘッドの削減、ボタンをクリックするだけでストレージのニー...

第 1 四半期のモバイル広告トレンドに関する洞察

第 1 四半期のモバイル広告市場を包括的に分析した結果、次のことがわかりました。 1. 総合電子商取...

reprisehosting: シアトル、$30/L5640/16g メモリ/1T/50M 無制限/4IP

reprisehosting (as: AS62838) のシアトルデータセンターは、3つの主な割引...

ドメイン名投資のホットスポットに関する議論: デジタル、ピンイン、クリエイティブ ドメイン名のホットスポットは何ですか?

ドメイン名投資はウェブマスターコミュニティの導火線に火をつけました。多くのウェブマスターがこのアイデ...

仮想化の「厄介な」問題を解決する方法:「クラウド」データセンター

クラウド コンピューティングが爆発的に普及しているこの時代では、仮想化テクノロジがますます広く使用さ...

ピンガオクラウド開発

[51CTO.com からのオリジナル記事] クラウド コンピューティングは、部外者を混乱させる用語...

#ニュース# Limewaveが正式に閉鎖を発表、可能であれば早急にデータをバックアップ

昨日、Limewave.net はついにプロジェクトが失敗したことを正式に認め、今後は新規顧客の受け...

[ケーススタディ] Vipshop: ウォール街の狼の誕生

2年前のある日の午後、アメリカ・ニューヨークのフォーシーズンズホテルのロビーで、4人の中国人がVIP...

ラッシュメールの件名で開封率を向上

月収10万元の起業の夢を実現するミニプログラム起業支援プラン電子メールマーケティングは今でも顧客を開...

企業のウェブサイトがロングテールキーワードに適しているかどうかを議論する

率直に言うと、長い間企業のウェブサイトの最適化に取り組んできた友人は、次のような気持ちを持っているは...

Hostus Asia 最適化 VPS シンプルレビュー/Quadranet ロサンゼルス データセンター

Hostusのアジア最適化VPSがリリースされました。「Hostus-高速アジア最適化回線VPS/ク...