このトピックでは、ユーザーがアカウント、インスタンス、オペレーティングシステム (OS) 、およびElastic Compute Service (ECS) リソースを使用する際に、Alibaba Cloudがサイバーセキュリティと課題の脅威に対処し、セキュリティを向上させるための対策について説明します。
背景
セキュリティは広い範囲をカバーします。 Alibaba Cloudは安全なサービスを提供し、データセンターや仮想化プラットフォームなど、Alibaba Cloudサービスの基盤となるインフラストラクチャを保護する責任があります。 Alibaba Cloudサービスを使用する場合、Alibaba Cloudアカウントの保護、情報の機密保持、アクセス許可の管理などのベストセキュリティ対策に従うことも重要です。
クラウドサービスのセキュリティトレンド
サイバーセキュリティの脅威
近年、サイバーセキュリティの脅威が急速に増加しています。 Splunk Inc. が発表した年次グローバルリサーチレポートであるState of Security 2022は、次のデータを明らかにしています。
組織の49% は、1年前の39% と比較して、過去2年間にデータ侵害に苦しんでいると述べています。
回答者の79% は、ランサムウェア攻撃に直面していると述べています。 35% は、これらの攻撃の1つ以上がデータやシステムへのアクセスを失ったことを認めています。
セキュリティチームの59% は、1年前の42% と比較して、修復措置を講じるためにかなりの時間とリソースを費やしてきたと述べています。
計画外のダウンタイムからの回復には、平均して14時間かかります。 回答者は、このダウンタイムの平均コストが1時間あたり200,000米ドルに達したと見積もっています。
従来のITインフラストラクチャからクラウドベースのアーキテクチャへの移行は、セキュリティに新たな課題をもたらします。 1回の偶発的な操作により、アプリケーションがインターネットに公開されたり、キーが開示されたりして、サイバーセキュリティインシデントが発生する可能性があります。 セキュリティとコンプライアンスは、デジタル変革に不可欠であり、クラウドへの移行において重要な役割を果たします。
クラウド内の情報アセットを保護するための前提条件
セキュリティは非常に重要であり、優先事項にする必要があります。 システムとアプリケーションのセキュリティは、漸進的な進歩と成熟の継続的な旅です。
セキュリティツールとコントロールを備えた、包括的なセキュリティ戦略と統合された保護ポリシーを作成します。
DevOpsにセキュリティを構築します。
システムを保護するための自動セキュリティ防御システムを構築します。
クラウドセキュリティのコンプライアンス基準を掘り下げます。
以下の項目にもご注意ください。
すべての情報アセットを識別、定義、および分類します。
保護する資産データを定義します。
保護されている資産データにアクセスできるユーザーと、資産データにアクセスできる目的を定義します。
クラウド内の情報アセットの保護
クラウドコンピューティングセキュリティ、またはクラウドセキュリティは、通常、一連のポリシー、制御、およびテクノロジーを使用して、クラウドコンピューティング環境内のデータ、インフラストラクチャ、およびアプリケーションを外部および内部の両方のサイバーセキュリティの脅威と脆弱性から保護することを指します。 ますます多くの企業がクラウドセキュリティのコンプライアンスを重視しています。 クラウドのセキュリティコンプライアンスは、トップダウンのトップレベルの設計に依存します。 クラウドでのセキュリティコンプライアンスを確保するには、セキュリティを考慮したクラウドベースのアプリケーションを開発する必要があります。
現在のセキュリティの傾向に照らして、次の表に記載されているベストセキュリティ手法を使用して、クラウド内の情報アセットを保護することをお勧めします。
項目 | ベストプラクティス | 説明 |
アカウントセキュリティ |
| |
アプリケーションリソースの管理 |
| |
情報とデータのセキュリティ |
| |
ネットワーク環境のセキュリティ |
| |
アプリケーションのセキュリティ |
| |
インスタンスのゲストオペレーティングシステムにおけるアプリケーションのセキュリティ |
|
Alibaba Cloudアカウントの保護
アカウントのMFAの有効化
Alibaba CloudアカウントのMFAを有効にすることを推奨します。 Alibaba Cloudサービスにアクセスする際、ユーザー名とパスワードに加えてMFAセキュリティコードを提供する必要があるため、MFAはセキュリティを強化します。 MFAセキュリティコードは、MFAデバイスによって動的に生成される。
Alibaba Cloudアカウントの代わりにRAMユーザーを使用し、適切な権限ポリシーをユーザーに付与する
最小権限の原則に基づいて、ECSリソースに対するアクセス許可がRAMユーザーに付与されていることを確認してください。 アカウント情報を第三者に共有したり、RAMユーザーに不要な権限を付与したりしないでください。 Alibaba Cloudアカウントを使用してRAMユーザー (またはユーザーグループ) を作成し、ECSリソース上のアカウントに対する詳細なアクセス制御のための特定の権限ポリシーをアタッチすることを推奨します。 詳細については、「RAMユーザーを使用したリソースへのアクセスの制御」をご参照ください。
RAM ユーザー
従業員、システム、アプリケーションなど、組織内のさまざまなエンティティからアクセスする必要があるECSインスタンスを複数購入した場合、RAMユーザーを作成し、RAMユーザーに権限ポリシーをアタッチして、セキュリティリスクを防ぐために必要な権限のみを付与できます。
RAMユーザーグループ
複数のユーザーグループを作成し、異なる権限ポリシーをユーザーグループにアタッチできます。 これにより、ユーザーグループごとにユーザー権限を管理できます。 たとえば、ネットワークセキュリティを強化するために、企業ネットワーク外のIPアドレスから特定のECSリソースへのアクセスを拒否する権限ポリシーを設定し、そのポリシーを特定のユーザーグループに割り当てることができます。
複数のユーザーグループを作成し、異なるポリシーをアタッチして、異なる職務責任を持つ担当者の権限を管理できます。 たとえば、開発者がシステム管理者になった場合、開発者アカウントをDevelopersグループからSysAdminsグループに移動できます。
ユーザーグループのポリシー
SysAdmins: このユーザーグループには、ECSインスタンスを作成および管理するための権限が必要です。 SysAdminsグループのメンバーがインスタンス、イメージ、スナップショット、セキュリティグループなどのECSリソースに対するすべての操作を実行できるように、権限ポリシーをアタッチできます。
開発者: このユーザーグループには、ECSインスタンスを使用するための権限のみが必要です。 開発者グループのメンバーがDescribeInstances、StartInstance、StopInstance、RunInstances、およびDeleteInstance操作を呼び出すことを許可する権限ポリシーをアタッチできます。
AccessKeyペアの代わりにインスタンスRAMロールを使用してAPI操作を呼び出す
通常、ECSインスタンスにデプロイされたアプリケーションは、Alibaba CloudアカウントまたはRAMユーザーのAccessKeyペアを使用して、他のAlibaba CloudサービスのAPIにアクセスします。 AccessKeyペアをインスタンスで使用してAPI操作を呼び出すには、インスタンスでAccessKeyペアを設定する必要があります。 たとえば、AccessKeyペアをインスタンスの設定ファイルに書き込むことができます。 しかし、この方法では、情報漏えいやメンテナンスの困難などのセキュリティ上のリスクがあります。 これらのリスクに対処するため、Alibaba CloudはインスタンスRAMロールを提供しています。 インスタンスRAMロールを使用することで、AccessKeyペアのセキュリティを確保し、RAMを使用して権限を細かく制御および管理できます。
インスタンスRAMロールをECSインスタンスにアタッチし、Security Token Service (STS) の一時的な資格情報を使用して他のAlibaba CloudサービスのAPIにアクセスできます。 ロールをインスタンスにアタッチした後、セキュリティ強化モードでインスタンスメタデータにアクセスすることを推奨します。 STSの一時的な資格情報は定期的に更新されます。 詳細については、「概要」をご参照ください。
AccessKeyペアのリークを防ぐ
AccessKeyペアは、Alibaba CloudアカウントがAPIにアクセスするための資格情報であり、安全に保つ必要があります。 悪意のある使用によって引き起こされるセキュリティの脅威を防ぐために、AccessKeyペアをGitHubなどの外部チャネルに公開しないでください。 Alibaba CloudアカウントのAccessKeyペアが公開されている場合、リソースはリスクにさらされます。
AccessKeyペアの使用方法に関するセキュリティの提案:
AccessKeyペアをコードに埋め込まないでください。
定期的にAccessKeyペアを変更します。
不要なAccessKeyペアを定期的に取り消します。
最小権限の原則に基づいてRAMユーザーを使用します。
ログ監査を有効にし、ログをObject Storage Service (OSS) とlog Serviceに配信してストレージと監査を行います。
acs:SourceIp
を設定して、特定のパブリックIPアドレスからAlibaba Cloud APIへのアクセスを制御します。acs:SecureTransport
をtrueに設定します。これは、機能とリソースがHTTPS経由でアクセスされることを示します。
アカウントとパスワードを管理するためのセキュリティの提案
カテゴリ | ポリシーの説明 |
Alibaba Cloud アカウント |
|
キーと資格情報 |
|
パスワード |
|
KMSで安全にホストされている機密データ | 機密データをプレーンテキストでディスクに保存すると、漏洩のリスクが生じます。 事前にKMSを有効化することを推奨します。 KMSを使用すると、暗号化インフラストラクチャを自分で開発および保守する必要なく、クラウドサービスでデータ暗号化を有効にできます。 たとえば、ECSインスタンスでディスクの暗号化と信頼できるブートを有効にできます。 |
情報アセットを一括管理
クラウドリソースを一括で自動的に管理および監査して、設定が正しくないために個々のアセットが保護されないようにします。 インスタンスおよびセキュリティグループに対して統一されたデプロイおよび命名規則を使用し、命名規則に準拠していないセキュリティグループまたはインスタンスを定期的にチェック、警告、および削除することを推奨します。 タグを使用してリソースを一括管理し、Cloud Assistantを使用してリソースチャネルのO&Mを自動化し、Cloud Configを使用してリソースのコンプライアンス監査を実施し、Application Configuration Management (ACM) を使用してすべてのアプリケーション設定の管理を一元化します。
タグを使用したリソースの一括管理
タグを使用して、クラウドリソースを一括で識別、分類、検索します。 セキュリティインシデントが発生した場合は、タグを使用してインシデントの範囲と影響の重大度をすばやく識別できます。
一度に、セキュリティグループなどのリソースに対して特定のタグを使用してセキュリティポリシーを設定できます。
詳細については、「概要」をご参照ください。
Cloud Assistantを使用したリソースチャネルのO&Mの自動化
従来のO&MチャネルはSSHに依存してキーを取得し、関連するネットワークポートを開きます。 キーの不適切な管理やネットワークポートの露出の場合、クラウドリソースはリスクにさらされます。 Cloud Assistantは、ECS用に開発されたネイティブの自動O&Mツールです。 Cloud Assistantを使用すると、ジャンプサーバーを使用せずに、パスワードなしでログインなしでECSインスタンスをバッチ管理し、スクリプトをバッチ実行してECSインスタンスにファイルを送信できます。 通常、Cloud Assistantを使用して、ソフトウェアのインストールとアンインストール、サービスの開始と停止、構成ファイルの配布、一般的なコマンド (またはスクリプト) の実行を行うと、クラウドリソースを安全かつ効率的に管理できます。 Cloud Assistantを使用して、一度に複数のECSインスタンスをバッチ管理、コマンドの実行、およびファイルの送信を行うことができます。 Cloud Assistantは、ECSインスタンスでインタラクティブなO&Mを実行できるセッション管理機能を提供します。 パスワード、ログオン、ジャンプサーバー、またはECSインスタンスのパブリックIPアドレスを使用せずに、上記の操作をすべて実行できます。 Cloud Assistantは、次のセキュリティメカニズムを使用して、O&Mチャネルのセキュリティを確保します。
アクセス制御: Cloud AssistantはRAMポリシーを使用して、インスタンス、リソースグループ、タグ、ソースIPアドレスなどの複数のディメンションに基づいてECSインスタンスへのユーザーアクセスを制御します。 必要な権限を持つユーザーのみがCloud Assistantを使用してECSインスタンスを管理できます。
エンドツーエンドの信頼性: Cloud Assistantの使用に関与するすべてのリソースはHTTPSを介して相互作用し、データは転送中に暗号化されます。 ECSインスタンスは、内部セキュリティメカニズムを使用して、ユーザーにポートを開くことなくインバウンドアクセスを制御し、侵入リスクを最小限に抑えます。 ECSインスタンスは、内部ネットワークを介してアウトバウンドで通信し、パブリックIPアドレスを公開する必要なく到達可能になります。
セキュアコンテンツ: Cloud Assistantによって送信されるコマンドは、署名に基づいて暗号化および検証され、コマンドが安全であり、送信中に改ざんされないようにします。
ログ監査: API操作を呼び出して、Cloud Assistantによって送信されるコマンドとファイルを監査できます。 コマンドタスクまたはファイル送信タスクの実行時間と結果、コマンドまたはファイルの内容、およびコマンドの実行またはファイルの送信に使用されるユーザー名を照会できます。 アーカイブまたは分析の目的で、Cloud Assistantによって実行されたタスクに関するログをOSSまたはSimple Log Serviceに配信することもできます。
詳細については、「概要」をご参照ください。
Cloud Configを使用したリソースのコンプライアンス監査の実施
Cloud Configは、クラウドリソースを評価できるサービスです。 Cloud Configは、異なるリージョンのリソースを集約して、リソースのクエリを高速化します。 Cloud Configはスナップショットを取得して、監視対象の各リソースの設定変更を記録し、設定のタイムラインに設定変更を表示します。 リソース構成の変更により、コンプライアンス評価がトリガーされます。 Cloud Configは、非準拠設定のアラートを生成します。 Cloud Configを使用すると、内部および外部のコンプライアンス要件に対する大量のクラウドリソースのコンプライアンスを監視できます。 詳細については、「クラウド構成とは? 」をご参照ください。
ACMを使用してアプリケーション構成の管理を一元化する
ACMは、分散アーキテクチャ環境でアプリケーション構成を一元管理およびプッシュするユーティリティサービスです。 ACMは、構成変更、構成プッシュ、履歴バージョン管理、カナリアリリース、構成変更監査などの多くの機能を提供します。 これらの機能により、ACMはすべてのアプリケーションで構成の管理を一元化し、分散システムでの構成管理コストを削減し、可用性の低下や誤った構成変更による障害のリスクを軽減します。 詳細については、「ACMとは」をご参照ください。
インスタンス作成時にセキュリティコンプライアンスを有効にする
セキュリティ強化されたインスタンスに高いセキュリティを必要とするホストビジネス
ビジネスで高いセキュリティと強化された信頼性が必要な場合は、信頼されたブートとプライベートデータのセキュリティを確保できるセキュリティ強化されたインスタンスでビジネスを実行できます。
このインスタンスファミリーは、暗号化メモリとIntelベースの機密コンピューティングをサポートしています®ソフトウェアガード拡張機能 (SGX) をして、マルウェア攻撃から重要なコードとデータの機密性と整合性を保護します。
このインスタンスファミリーは、TCM (trusted Cryptography Module) またはTPM (Trusted Platform Module) チップに基づく信頼できるブートを実装します。 信頼できるブート中に、基になるサーバーからECSインスタンスまでのブートチェーン内のすべてのモジュールが測定および検証されます。
例: c6tインスタンス。 セキュリティ強化インスタンスの詳細については、「概要」をご参照ください。
安全なイメージを使用する
パブリックイメージを使用し、イメージのセキュリティを強化します。
Alibaba Cloudが提供するパブリックイメージを使用します。
Webシェルの検出、セキュリティ構成のチェック、サーバーへの異常なログオンのアラートなど、さまざまなセキュリティ機能を取得するために、パブリックイメージのセキュリティ強化を無料で有効にします。
暗号化されたカスタムイメージを使用します。
AES-256アルゴリズムを使用してカスタムイメージを暗号化し、イメージが公開された場合のデータ漏洩を防ぎます。 暗号化されたシステムディスクと暗号化されたデータディスクを作成し、これらのディスクに基づいて暗号化カスタムイメージを作成できます。 暗号化されていないカスタムイメージをコピーしてイメージコピーを暗号化するときに、コピーと暗号化機能を使用することもできます。 暗号化されたカスタムイメージを共有する場合は、キーリークを防ぐために、イメージ用に個別のBYOKキー (Bring Your Own Key機能を使用してインポートされたカスタムキー) を作成することをお勧めします。 詳細については、「カスタムイメージのコピー」をご参照ください。
KMSを使用してディスク上のデータを暗号化する
ディスクを暗号化して、ビジネスやアプリケーションに追加の変更を加えることなく、ディスクに保存されているデータを最大限に保護できます。 暗号化されたディスクから作成されたスナップショットおよびこれらのスナップショットから作成されたディスクは暗号化されます。 データセキュリティと規制遵守が必要なシナリオでは、ディスク暗号化機能を使用して、Alibaba Cloud ECSに保存されているデータを暗号化できます。 これにより、重要な管理インフラストラクチャを確立または維持することなく、データのプライバシー、自律性、およびセキュリティを保護できます。 システムディスクとデータディスクの両方を暗号化できます。 詳細については、「概要」をご参照ください。
ディザスタリカバリの目的でスナップショットを使用する
スナップショットを使用したデータのバックアップ
データバックアップはディザスタリカバリの基盤であり、システム障害、偶発的な操作、セキュリティの問題によって引き起こされるデータ損失のリスクを軽減するのに役立ちます。 ECSは、ほとんどのユーザーのデータバックアップ要件を満たすスナップショット機能を提供します。 必要に応じてスナップショットの作成方法を選択できます。 詳細については、「ディスクのスナップショットの作成」をご参照ください。
自動スナップショットを毎日作成し、少なくとも7日間はスナップショットを保持することを推奨します。 これにより、耐障害性が大幅に向上し、潜在的なデータ損失が最小限に抑えられます。
暗号化されたスナップショットの使用
ECSは業界標準のAES-256アルゴリズムとキーを使用してスナップショットを暗号化し、スナップショットが公開された場合のデータ漏洩を防ぎます。 暗号化されたディスクを作成し、そのディスクから暗号化されたスナップショットを作成できます。
セキュリティ強化モードでのインスタンスメタデータへのアクセス
ECSインスタンスのメタデータには、Alibaba CloudのECSインスタンスの情報が含まれます。 実行中のインスタンスのメタデータを表示し、メタデータに基づいてインスタンスを構成または管理できます。 詳細については、「ECSインスタンスメタデータの概要」をご参照ください。
セキュリティ強化モードでインスタンスメタデータにアクセスすることを推奨します。 セキュリティ強化モードでは、ECSインスタンスとインスタンスメタデータサーバーの間にセッションを確立できます。 インスタンスのメタデータにアクセスしようとすると、インスタンスメタデータサーバーはトークンに基づいてIDを認証します。 トークンの有効期限が切れると、インスタンスメタデータサーバーはセッションを閉じ、トークンを削除します。 トークンには次の制限が適用されます。
各トークンは、単一のECSインスタンスに対してのみ使用できます。 あるインスタンスのトークンを使用して別のインスタンスにアクセスしようとすると、アクセスは拒否されます。
各トークンには、1秒から21,600秒 (6時間) の範囲の有効期間が必要です。 トークンは、セキュリティとユーザーエクスペリエンスの最適なバランスを維持するために、有効期限が切れるまで再利用できます。
プロキシアクセスはサポートされていません。 トークンの作成要求にX-Forwarded-forヘッダーが含まれている場合、インスタンスメタデータサーバーはトークンの発行を拒否します。
インスタンスごとに発行できるトークンの数に制限はありません。
ネットワークリソースに対する権限を適切に分離する
クラウドコンピューティングはVirtual Private Cloud (VPC) を活用して、物理ネットワークを分離されたセキュアな仮想ネットワークに抽象化し、ネットワークリソースをプールしてデータリンク層での分離を提供します。 VPCは互いに完全に分離されており、elastic IPアドレスまたはNAT IPアドレスを使用してのみ接続できます。 各VPC内にIPアドレス範囲またはCIDRブロック、ルートテーブル、ゲートウェイを設定できます。 オンプレミスのデータセンターをVPCに接続したり、世界中のネットワークを接続してカスタマイズされたネットワーク環境を構築し、アプリケーションをクラウドにスムーズに移行したり、データセンターを拡張したりできます。 オンプレミスのデータセンターをVPCに接続するには、VPN Gateway、Express connect、またはSmart Access Gateway (SAG) を使用できます。 世界中のネットワークを接続するには、Cloud Enterprise Network (CEN) を使用できます。
ネットワークはクラウドサービスの基礎です。 ネットワークはさまざまな深刻なサイバー攻撃に対して脆弱であり、保護が困難です。 クラウドコンピューティングプラットフォームは、インターネットからの脅威から防御するための成熟したサイバーセキュリティアーキテクチャを提供します。 Alibaba Cloudでは、セキュリティグループ、ネットワークアクセス制御リスト (ACL) 、ルーティングポリシー、またはExpress Connect回線を使用して、VPCへのアクセスを制御できます。 さらに、外部のサイバー脅威から保護するために、Cloud Firewall、WAF、Anti-DDoSなどのセキュリティ保護を構成する必要があります。
ネットワークリソースを分離するためのセキュリティの提案に従う
ネットワークリソースを分離するための次のセキュリティ提案を検討してください。
ネットワーク管理者アカウントを作成して、セキュリティグループ、ネットワークACL、およびトラフィックログを一元管理します。
ネットワークACLを使用して、プライベートデータへのアクセスを制限します。
ネットワークリソースを分離し、大きなサブネットを事前設定して、サブネットの重複を防ぎます。
リソースではなくアクセスポイントに基づいてセキュリティグループを設定します。
安全なネットワーク環境を構築する
セキュリティグループを適切に設定してネットワークを分離し、攻撃対象を減らす
セキュリティグループは、ネットワークセキュリティ分離の重要なコンポーネントであり、ECSインスタンスとの間のネットワークアクセスを制御するために使用されます。 セキュリティグループのルールは、セキュリティグループに関連付けられているインスタンスへのインバウンドトラフィックと、インスタンスからのアウトバウンドトラフィックを制御します。 セキュリティグループルールを設定して、ポート番号とIPアドレスに基づいてトラフィックをフィルタリングし、攻撃対象を減らしてインスタンスを保護できます。
たとえば、ポート22はデフォルトでLinuxインスタンスのリモート接続ポートとして使用されます。 このポートが外部アクセスに開放されている場合、セキュリティリスクが発生します。 特定のローカルIPアドレスのみがポート22経由でインスタンスにアクセスできるようにセキュリティグループルールを設定できます。 セキュリティ要件が高い場合は、サードパーティの仮想プライベートネットワーク (VPN) 製品を使用してログオンデータを暗号化できます。 次の表に示すセキュリティの提案を検討してください。
提案
説明
参考資料
最小特権の原則
セキュリティグループはホワイトリストのように機能することが期待されます。 したがって、必要な数のポートを開いて公開し、必要な数のパブリックIPアドレスを割り当てます。 タスクログを照会したり、インスタンスでトラブルシューティングを実行するには、VPNまたはbastionホストを使用してインスタンスにログインします。 不適切な設定により、サービスポートまたはIPアドレスがインターネットに公開され、サイバーセキュリティの脅威が発生する可能性があります。
セキュリティグループを作成して、不正アクセスを防止できます。 インターネットトラフィックを管理するセキュリティグループと内部ネットワークトラフィックを管理するセキュリティグループのビジネスで必要なポートのみを開く必要があります。
ECSインスタンスの高リスクサービスポートの場合、コンピューターからのアクセスのみを許可するか、特定のIPアドレスからのアクセスのみを許可するようにセキュリティグループルールを設定する必要があります。
HTTPサービスの管理バックエンドの場合、特定のIPアドレスからのアクセスのみを許可するようにセキュリティグループルールを設定する必要があります。 HTTPサービスのドメイン名のWAF機能を有効にします。
セキュリティグループルールの権限付与オブジェクトとして0.0.0.0/0を設定しないでください。
すべてのインバウンドアクセスを許可することはよくある間違いです。
0.0.0.0/0
はすべてのIPアドレスを示します。 セキュリティグループルールに、インバウンドアクセスを許可する許可オブジェクトとして0.0.0.0/0が含まれている場合、ルールは外部アクセスに対してすべてのポートを開きます。 これは、高いセキュリティリスクをもたらす。 セキュリティ体制を改善するために、すべてのポートに対する外部アクセスを拒否し、必要に応じてポートを開くようにセキュリティグループルールを設定することを推奨します。 たとえば、webサービスを公開する必要がある場合は、ポート80、8080、443などの一般的なTCPポートを開き、他のポートを閉じたままにすることができます。不要になったインバウンドセキュリティグループのルールを無効にします。
インバウンドセキュリティグループルールに
0.0.0.0/0
が含まれている場合は、アプリケーションが公開する必要があるポートとサービスを確認します。 特定のポートが外部サービスを直接提供しないようにする場合は、ポートの拒否 (禁止) ルールを追加できます。 たとえば、インスタンスにMySQLデータベースサービスをデプロイした場合、ポート3306をインターネットに公開することはできません。 この場合、[拒否] ルールを追加し、ルールの優先度を100に設定します。これは、最も低い優先度を示します。セキュリティグループルールでセキュリティグループを権限付与オブジェクトとして参照します。
リース権の原則に基づいてアクセスを許可するには、セキュリティグループにルールを追加する必要があります。 異なるアプリケーションレイヤーは、適切なインバウンドルールとアウトバウンドルールで異なるセキュリティグループを使用する必要があります。
たとえば、分散アプリケーションに対して異なるセキュリティグループを作成できます。 これらのセキュリティグループは互いにアクセスできない場合があります。 この場合、セキュリティグループ間の相互アクセスを許可する認証オブジェクトとしてセキュリティグループ (IPアドレスまたはCIDRブロックではなく) を参照するセキュリティグループルールを追加して、これらのセキュリティグループ内のリソースが相互にアクセスできるようにすることができます。
たとえば、アプリケーションのwebレイヤー用にsg-webセキュリティグループを作成し、データベースレイヤー用にsg-データベースセキュリティグループを作成したとします。 sg-databaseでは、sg-webセキュリティグループを参照するルールを追加して、sg-webセキュリティグループ内のすべてのリソースがポート3306を介してアクセスできるようにすることができます。
クラシックネットワークタイプのセキュリティグループの場合、内部ネットワークトラフィックを管理するルールで、CIDRブロックまたはIPアドレスを許可オブジェクトとして設定しないでください。
デフォルトでは、内部ネットワークトラフィックのインバウンドルールは、クラシックネットワークに存在するECSインスタンスに対して有効になっていません。 内部ネットワークトラフィックを管理するセキュリティグループルールを設定するときは注意してください。
セキュリティグループに適切な名前とタグを設定します。
適切な名前と説明は、セキュリティグループの識別に役立ちます。 セキュリティグループの名前と説明を変更できます。
セキュリティグループにタグを追加するには、ECSコンソールを使用するか、API操作を呼び出して検索と管理を容易にします。
同じセキュリティグループへの相互アクセスを必要とするECSインスタンスを追加します。
各ECSインスタンスは、最大5つのセキュリティグループに属することができます。 同じセキュリティグループ内のECSインスタンスは、内部ネットワークを介して相互に通信できます。 複数のセキュリティグループがあり、複数のセキュリティグループルールを設定しない場合は、別のセキュリティグループを作成し、内部ネットワーク通信を必要とするインスタンスを新しいセキュリティグループに追加できます。
すべてのECSインスタンスを同じセキュリティグループに追加しないことを推奨します。 複数のECSインスタンスに分散された大規模または中規模のアプリケーションの場合、これらのインスタンスはそれぞれ異なる役割を果たします。 すべてのインスタンスを同じセキュリティグループに追加することはできません。また、各インスタンスのインバウンドおよびアウトバウンドセキュリティグループルールを適切に設定する必要があります。
セキュリティグループ内のインスタンスを分離します。
セキュリティグループは、動的パケットフィルタリングとも呼ばれるステートフルパケットインスペクション (SPI) を提供する仮想ファイアウォールとして機能します。 セキュリティグループには、同じリージョンにあるインスタンスが含まれます。 これらのインスタンスは同じセキュリティ要件を持ち、互いに信頼します。 Alibaba Cloudは、セキュリティグループの内部アクセス制御ポリシー (または内部ネットワーク通信ポリシー) を微調整して、セキュリティグループ内のインスタンスを分離します。
セキュリティグループ5つのルールを使用します。
セキュリティグループは、1つ以上のECSインスタンスとのネットワークアクセスを制御するために使用されます。 セキュリティグループは、セキュリティ分離の重要なコンポーネントであり、クラウド内のセキュリティドメインを論理的に分離するために使用されます。 セキュリティグループの5つのルールを使用すると、送信元IPアドレス、送信元ポート、宛先IPアドレス、宛先ポート、およびトランスポート層プロトコルの5つの要素に基づいて、正確なアクセス制御を実装できます。
インターネット向けサービスを提供するECSインスタンスと、内部ネットワーク向けサービスを提供するECSインスタンスを異なるセキュリティグループに追加します。
ECSインスタンス上でホストされるアプリケーションは、インスタンスがインターネットに接続されたサービスを提供するシナリオにおいて、インターネットにアクセス可能であり得る。 これらのシナリオには、インスタンスが外部アクセスのために特定のポート (ポート80および443など) をプロアクティブに公開し、インスタンスがポート転送ルール (NATポート転送ルール、およびインスタンスのシステム割り当てパブリックIPアドレスまたはelastic IPアドレスに基づく転送ルールなど) を受動的に提供するシナリオが含まれます。
上記のシナリオでは、インスタンスに最も厳しいセキュリティグループルールを使用します。 すべてのプロトコルとすべてのポートに対するアクセスを拒否するルールを追加してから、ポート80や443など、外部サービスが必要とするポートへのアクセスのみを許可するルールを追加します。 セキュリティグループにインターネット接続のECSインスタンスのみが含まれている場合、セキュリティグループ内のルールは簡単に調整できます。
同じセキュリティグループ内のインターネット接続ECSインスタンスには、インスタンスがプライマリサービス以外のサービスを提供しないようにするための明確で単純な責任が必要です。 たとえば、MySQLおよびRedisアプリケーションの場合、インターネットアクセスを提供しないECSインスタンスにデプロイし、特定のセキュリティグループからインスタンスへのアクセスを許可するようにセキュリティグループルールを設定することを推奨します。
組織内の異なるセキュリティレベルのサービスを分離するようにセキュリティドメインを構成する
VPCを使用して、組織内の異なるセキュリティレベルのサーバーを個別にホストし、相互接続されたネットワークを介してサーバーが相互に干渉しないようにすることで、プライベートネットワークを構築できます。 VPCを作成し、CIDR表記でプライベートIPアドレス範囲をVPCに割り当て、VPCのルートテーブルとゲートウェイを設定することを推奨します。 次に、インターネットから論理的に分離されたこのVPCに重要なデータを保存し、elastic IPアドレス (EIP) またはジャンプサーバーを使用して、毎日のO&M目的でデータを管理できます。 詳細については、「VPCの作成と管理」をご参照ください。
ジャンプサーバーまたは要塞ホストを使用して、内部および外部の侵入から保護します
ジャンプサーバーには多数の権限があります。 ジャンプサーバーを使用する場合は、ツールを使用して、その操作を徹底的に記録および監査する必要があります。 攻撃者によるネットワークやデータのハッキングや破壊を防ぐため、代わりに要塞ホストを使用することを推奨します。 さまざまな技術的方法を使用して、O&M担当者がネットワーク内のサーバー、ネットワークデバイス、セキュリティデバイス、およびデータベースで実行する操作を監視および記録します。これにより、トラブルシューティングまたはO&M担当者に集中的に通知し、タイムリーにアラートを処理し、操作を監査し、偶発的な操作または障害の責任者を特定できます。
ジャンプサーバーをVPCの専用vSwitchに割り当て、対応するEIPまたはNATポート転送テーブルをジャンプサーバーに関連付けることを推奨します。 SG_BRIDGEという名前の専用セキュリティグループを作成し、必要なポートを開きます。 たとえば、Linuxオペレーティングシステムの場合はTCPポート22を開き、Windowsオペレーティングシステムの場合はRDPポート3389を開きます。 インバウンドアクセスを制限するには、セキュリティグループルールを追加して、組織の特定のパブリックIPアドレスのみがセキュリティグループにアクセスできるようにします。 このようにして、リソースがスキャンまたはアクセスされる確率が低減される。 ジャンプサーバーとして機能するECSインスタンスをセキュリティグループに追加します。 ジャンプサーバーが別のセキュリティグループ内のECSインスタンスにアクセスする場合は、ジャンプサーバーがそのセキュリティグループにアクセスできるようにするルールを設定できます。 たとえば、SG_CURRENTという名前のセキュリティグループでは、特定のプロトコルとポートを介したSG_BRIDGEセキュリティグループからのアクセスを許可するルールを追加できます。 SSH通信にジャンプサーバーを使用する場合は、パスワードの代わりにキーペアを使用してECSインスタンスにログインすることを推奨します。 キーペアの詳細については、「SSHキーペアの概要」をご参照ください。
インターネットに公開される攻撃の対象を減らすために、パブリックIPアドレスを適切に割り当てる
パブリックIPアドレスの適切な割り当てにより、インターネットアクセス管理が容易になり、ECSインスタンスがクラシックネットワークまたはVPCに存在するかどうかに関係なく攻撃対象が減少します。 VPCに存在するECSインスタンスの場合、インターネットアクセスが必要なインスタンスを複数のvSwitchに接続することを推奨します。 これにより、インスタンスの監査と区別が容易になり、ECSインスタンスがインターネットに誤って公開されるのを防ぐことができます。
ほとんどの分散アプリケーションには、異なるレイヤーとグループがあります。 インターネットアクセスを提供しないECSインスタンスの場合、パブリックIPアドレスを割り当てないことを推奨します。 インターネットアクセスを提供する複数のインスタンスの場合、Server Load Balancer (SLB) インスタンスを構成してインターネットトラフィックを分散し、システムの可用性を向上させることを推奨します。 詳細については、「SLBの概要」をご参照ください。
ECSインスタンスにインターネットアクセスが必要であるが、パブリックIPアドレスがない場合は、NAT Gatewayを使用してインスタンスにインターネットプロキシサービスを提供することを推奨します。 特定のCIDRブロックまたはサブネットにインターネットアクセスを提供するようにSNATエントリを設定するだけで済みます。 これにより、アウトバウンドインターネットアクセスのみが必要な場合に、パブリックIPアドレスが割り当てられた後にサービスがインターネットに公開されるのを防ぐことができます。 詳細については、「VPN Gatewayの概要」をご参照ください。
セキュリティサービスを使用してセキュリティ防衛システムを構築する
Anti-DDoS Origin Basic (無料) 、Anti-DDoS Pro、およびAnti-DDoS Premiumを使用してDDoS攻撃を軽減する
DDoS攻撃では、複数の侵入先のコンピュータシステムが1つ以上のターゲットを不正なトラフィックで溢れさせ、ターゲットの正当なユーザーへのサービスを拒否します。 Alibaba Cloud Security Centerは、SYNフラッド、UDPフラッド、ACKフラッド、ICMPフラッド、DNSフラッド、HTTPフラッド攻撃など、レイヤー3からレイヤー7へのDDoS攻撃に対して防御できます。 Anti-DDoS Origin Basicは、最大5 Gbit/sのDDoS軽減機能を無料で提供します。
デフォルトでは、ECSインスタンスでAnti-DDoS Origin Basicが有効になっています。 Anti-DDoS Origin Basicを使用すると、高価なトラフィックスクラビングデバイスを購入することなく、DDoS攻撃の場合に通常のアクセス速度を維持できます。 Anti-DDoS Origin Basicは、ビジネスの期待される帯域幅、可用性、安定性を保証します。 この場合、ビジネスは他のユーザーの影響を受けません。 ECSインスタンスの作成後、スクラブしきい値を設定できます。 詳細については、「トラフィックスクラブしきい値の設定」をご参照ください。
セキュリティをさらに向上させるために、アリババクラウドは、セキュリティクレジットスコアに基づいてDDoS保護を強化するセキュリティ信用プログラムを開始した。 プログラムで設定されたスコアリング基準を満たしていれば、最大100 Gbit/sのDDoS軽減能力を無料で取得できます。 Security Center Anti-DDoS Basicコンソールで、現在のセキュリティクレジットスコア、セキュリティクレジットの詳細、およびアカウントのスコア基準を表示できます。 DDoS防御の要件が高い場合は、Anti-DDoS ProまたはAnti-DDoS Premiumを購入できます。
Security Center Basicを無料で使用して、システムの脆弱性の悪用から保護します
Security Centerは、セキュリティの脅威をリアルタイムで識別、分析、警告する集中型のセキュリティ管理システムです。 Security Centerは、データセンターのクラウドリソースとサーバーのセキュリティを確保するための複数の機能を提供します。 機能には、ランサムウェア対策、ウイルス対策、web改ざん防止、コンプライアンスチェックが含まれます。 Security Centerを使用して、セキュリティ操作、応答、および脅威の追跡を自動化し、規制コンプライアンス要件を満たすことができます。
Security Center Basicはデフォルトで使用できます。 Security Center Basicは、サーバーへの異常なログオン、脆弱性、クラウドサービスの構成リスクなどの脅威のみをスキャンします。 脅威の検出、脆弱性の修正、ウイルスの検出と削除などの高度な機能を使用するには、Security Centerコンソールに移動して、有料のSecurity Centerエディションを購入します。 詳細については、「セキュリティセンター基本入門」をご参照ください。
WAFを使用してシステムの脆弱性の悪用から保護する
Web Application Firewall (WAF) は、Alibaba Cloud Security Centerのビッグデータ機能に依存して、Open web Application Security Project (OWASP) およびHTTPフラッド攻撃によって報告される一般的な攻撃からWebアプリケーションを保護します。 攻撃には、SQLインジェクション、クロスサイトスクリプティング (XSS) 攻撃、Webシェル、トロイの木馬、および不正アクセスが含まれます。 WAFは悪意のある訪問をブロックし、データ漏洩を防ぎ、Webサイトのセキュリティと可用性を確保します。 詳細については、「はじめに」をご参照ください。
WAFには次の利点があります。
WAFは、さまざまなwebアプリケーション攻撃を処理して、ソフトウェアやハードウェアをインストールしたり、webサイトの構成やコードを変更したりすることなく、webセキュリティとwebサイトの可用性を確保できます。 強力なweb保護機能に加えて、WAFは特定のwebサイトに専用の保護を提供でき、金融、eコマース、オンラインオフライン (O2O) 、インターネットプラス、ゲーム、公共サービス、保険などの分野でのwebアプリケーション保護に最適です。
WAFがないと、データリーク攻撃、HTTPフラッド攻撃、トロイの木馬などの攻撃に直面して、webへの侵入に対して脆弱になる可能性があります。
WAFの使用方法の詳細については、「はじめに」をご参照ください。
インスタンスゲストオペレーティングシステムでアプリケーションを保護する
ECSインスタンスへの安全なログインを確保するためのセキュリティ設定
デフォルトでは、非ルートアカウントを使用してECSインスタンスにログインできます。 root以外のアカウントを使用してECSインスタンスにログインする前に、インスタンスでsuまたはsudoコマンドを実行して、アカウントに管理権限を付与する必要があります。 デフォルトでは、PEM形式のキーファイルを含むルートアカウントを使用してインスタンスにログインすることはできません。 安全なアクセス制御プロトコルを使用してECSインスタンスにアクセスし、イメージタイプに基づいて異なるログオン資格情報を選択することを推奨します。 Linuxインスタンスの場合、RSAで暗号化されたキーペアのみをログオン資格情報としてサポートし、パスワードをログオン資格情報としてサポートしないようにインスタンスを構成することを推奨します。 Windowsインスタンスの場合、長さが8文字を超え、ログイン資格情報として特殊文字を含む複雑なパスワードを使用することをお勧めします。
Linux インスタンス:
デフォルトでは、Linuxインスタンスへのログインにはroot以外のアカウントが使用されます。
rootアカウントでLinuxインスタンスにログインする場合、インスタンスに対する権限は最高です。 これは、O&M操作を容易にする。 ただし、インスタンスが攻撃されると、深刻なデータセキュリティリスクが発生する可能性があります。 通常のecs-userアカウントを使用するログオンをサポートするAnolis OS 8.4またはUbuntu 20.04パブリックイメージを使用することを推奨します。
一時的なSSHキーペアを使用してLinuxインスタンスにログインします。
config_ecs_instance_connectプラグインを使用して、特定のユーザーが使用する特定のインスタンスにSSH公開鍵を送信できます。 SSH公開鍵はインスタンスに60秒間保存されます。 この60秒間に、SSH公開鍵を使用して、パスワードなしで指定されたユーザーとしてインスタンスに接続できます。 詳細については、「config_ecs_instance_connectプラグインをパスワードの代わりに公開キーで使用してLinuxインスタンスに接続する」をご参照ください。
SSHキーペアは、暗号化アルゴリズムに基づいて生成された公開キーと秘密キーで構成されます。 デフォルトでは、キーはRSA-2048アルゴリズムを使用して暗号化されます。 キーペアベースの認証には、ユーザー名およびパスワードベースの認証よりも次の利点があります。
SSHキーペアは、ログオンのセキュリティと信頼性を高めます。
キーペアのセキュリティ強度は、通常のユーザーパスワードのセキュリティ強度よりもはるかに高く、ブルートフォースクラッキングの脅威を防ぐことができます。
公開鍵が悪意を持って取得されても、秘密鍵を推定することはできない。
SSHキーペアは使いやすいです。
Linuxインスタンスで公開鍵を設定する場合、対応する秘密鍵を使用してSSHコマンドまたはその他のツールを実行し、パスワードなしでインスタンスにログインできます。
キーペアを使用して、多数のLinuxインスタンスに同時にログインできます。 複数のLinuxインスタンスを一括管理する場合は、SSHキーペアを使用してインスタンスにログインすることを推奨します。 LinuxインスタンスにバインドされているSSHキーペアを使用して、インスタンスにログインできます。 インスタンスの作成時にSSHキーペアを指定するか、インスタンスの作成後にSSHキーペアをインスタンスにバインドできます。 その後、プライベートキーを使用してインスタンスに接続できます。
sshd_configファイルを変更して、パスワードベースのログインを無効にし、RSAキーペアベースのログインのみをサポートすることを推奨します。 SSH設定ファイルでパスワードログインに関連するパラメーターを変更できます。
Windowsインスタンス:
複雑なパスワードを設定し、定期的にパスワードを変更します。 弱いパスワードは、データ侵害につながる主要な脆弱性の1つです。 脆弱なパスワードから生じるセキュリティリスクを防ぐため、サーバーには複雑なパスワードを使用することを推奨します。 サーバーのパスワードの長さは8文字以上で、大文字、小文字、数字、特殊文字などの複数の文字タイプが含まれている必要があります。 また、定期的にパスワードを変更することをお勧めします。
ECSインスタンスに強力なパスワードを設定します。 パスワードの長さは8〜30文字で、大文字、小文字、数字、および ( ) '~! @ # $ % ^ & * _ - + = | { } [ ] : ; ' < > , . ? /. Windowsインスタンスの場合、パスワードはスラッシュ (/) で始めることはできません。
転送中のデータの暗号化
データを暗号化するネットワークサービスが使用するポート間でのみ通信を許可するようにセキュリティグループまたはファイアウォールを設定します。 Transport Layer Security (TLS) 1.2以降などの暗号化プロトコルを使用して、クライアントとECSインスタンス間で転送中の機密データを暗号化できます。
ログの例外の監視と監査
FireEyeが発行したM-Trends 2018レポートによると、ほとんどの企業、特にアジア太平洋地域の企業はサイバーセキュリティ攻撃に対して脆弱です。 世界の滞留時間の中央値は101日でした。 アジア太平洋地域では、滞留時間の中央値は498日でした。 ドウェル時間は、攻撃が発生してから攻撃が検出されるまでの期間を示す。 滞留時間を短縮するために、企業は信頼できるログデータと監査サービスを必要とします。
CloudMonitor、ActionTrail、Log Audit Service、VPCフローログ、およびアプリケーションログを使用して、異常なリソースおよびアクセス許可のモニタリングおよびアラートシステムを構築することを推奨します。 このシステムは、問題のタイムリーな検出、ストップロス、およびセキュリティ防衛システムの最適化に不可欠です。
CloudMonitorを使用して、アラートをトリガーし、DDoS攻撃を防ぐためのリソース使用量のしきい値を設定します。 詳細については、「CloudMonitorの概要」をご参照ください。
ActionTrailを使用して不正アクセスを検出し、不正なセキュリティ設定と高リスクまたは偶発的な操作を特定します。 ActionTrailを使用して、品質モニタリングとコンプライアンス監査を実行し、脅威を検出して対応することもできます。 MFAを使用してActionTrailへのアクセスを制御します。 詳細については、「ActionTrailとは」をご参照ください。
VPCが提供するフローログ機能を有効にし、フローログを作成して、VPCに存在するelastic network Interface (ENI) のインバウンドトラフィックとアウトバウンドトラフィックに関する情報を記録します。 これにより、フローログの分析に役立ちます。
Log Audit Serviceを使用して、データを収集、スクラブ、分析、仮想化し、アラートを生成します。 Log Audit Serviceは、DevOps、操作、セキュリティ、監査シナリオなど、Simple Log Serviceに関連するシナリオで使用できます。 詳細については、「ログ監査サービスの概要」をご参照ください。
トレースアプリケーションイベントログとAPI呼び出しログ。
すべてのログをSimple Log ServiceまたはOSSに定期的に同期して保存し、ログのアクセス許可を設定します。
インスタンスID、リージョン、ゾーン、環境 (テスト環境または本番環境) などの情報を保存されたログに追加して、トラブルシューティングを容易にします。