よくわかるAWS・クラウド

  • AWS入門
  • セキュリティ
  • AWS

AWSのセキュリティ対策の基本とベストプラクティス

本記事では、AWSにおけるセキュリティの考え方と、利用者が安全にAWSを利用するには、どのようにAWSのセキュリティサービスを活用していけば良いのかについてご紹介します。

企業におけるクラウド利用の動向について

総務省がまとめた「通信利用動向調査報告書」によると、日本企業のクラウドサービス利用割合は39.3%と約 4割で、9.2%の約 3割は利用していない状況となっています。

令和2年通信利用動向調査報告書(企業編)

出典:総務省「通信利用動向調査」令和2年

また、クラウドを導入しない理由として37%が「情報漏洩などセキュリティに不安がある」と回答しており、セキュリティの課題からクラウド導入に踏み切れない企業が多いことがわかります。

クラウドを導入しない理由の回答

では、クラウド事業者は信用できるのか?また、情報漏洩や不正アクセスを防ぐにはどういった対策をおこなえばいいのか?などセキュリティの課題に対するアプローチを責任共有モデルというクラウドにおける基本的な概念を軸にご説明していきます。

責任共有モデルとは

「責任共有モデル」とは、クラウドサービス提供者であるAWSと、サービス利用者がセキュリティに関する責任範囲を明確分けて、それぞれ担当する範囲において必要なセキュリティ対策を実施することで、サービス全体のセキュリティを担保しようという考え方です。「責任共有モデル」はAWSのセキュリティを考えるうえで一番重要なキーワードとなります。

AWSの責任共有モデル

出典:AWS責任共有モデル

AWSの責任範囲

AWSが責任を担保する部分から見ていきます。

責任共有モデル(AWS)

データセンター自体の物理的なセキュリティや入館者の認証、アクセス制御、ハードウェアとソフトウェアのインフラストラクチャ、ストレージの管理や物理的な廃棄、基盤となるホストOSのアクセスログの記録と監査についてなど、これらはAWSが責任を担保する範囲になります。

また、ネットワークインフラの保守、侵入検知、さらには、仮想化インフラストラクチャーなどハイパーバイザー上で稼働している仮想マシン同士を完全に分離させてお互いのデータにアクセスできないよう保護する仕組みもAWS側の対応範囲となります。

AWSのセキュリティ

AWSは、セキュリティをAWSにおける最優先事項であると明言しており、世界トップクラスのセキュリティチームとコンプライアンスチームを設置し、セキュリティに対して継続的な投資がおこなわれています。

AWSはデータセンターの場所を公表していないため、利用者はAWSのデータセンターを訪問して、セキュリティ対策を行っている様子を確認することはできません。では、どうやって確認するかというと、独立した専門の第三者機関が、AWSの管理内容について監査・検証をおこない、監査結果の監査レポートを発行しています。

独立した専門の第三者機関による監査

第三者機関による監査

AWS Artifact

独立した専門の第三者機関による監査レポートを無料でダウンロードできるサービス

AWSでは、監査人が実際に監査をおこなった監査レポートの原文を利用者が手元に無料でダウンロードできるサービス「AWS Artifact」を提供しています。AWS Artifactは既に、AWSアカウントを持っている場合に、利用できるサービスです。

AWS導入前に確認できるセキュリティ・コンプライアンスのホワイトペーパー

一方で、まだAWSを利用するかどうか検討の段階でAWSの対応を確認したい場合、AWSはセキュリティやコンプライアンスに関するホワイトペーパーを発行しており、誰でもウェブでアクセスして確認することができます。
AWS コンプライアンスのリソース

特に、おすすめしたいのが、「リスクとコンプライアンス」というホワイトペーパーであり、AWSに対して、クラウド事業者を評価する団体がおこなった質問とAWSの回答が掲載されており、具体的な管理内容を知ることができます。
AWS リスクとコンプライアンス

例えば「どうやってストレージを廃棄しているか?」というリスクとコンプライアンスについて確認すると、AWSのストレージ廃棄に関して、下記のように具体的な処理手順が記載されています。

アマゾン ウェブ サービスのリスクとコンプライアンス

セキュリティやコンプライアンスに関する、一般的な質問については、まずこちらのホワイトペーパーを参照いただき、言及があるかどうか確認するとよいでしょう。

クラウドのセキュリティに対する不安を解決!AWSでおこなうべき3つのセキュリティ対策

AWS運用代行サービスをマンガで解説!

構成から見直して運用最適化を提案する!
▼こんなこと感じていませんか?
・AWS運用のための社内リソースが足りずに困っている
・障害発生時の対応に不安がある
・運用だけでなく、構成のアドバイスもあるとうれしい

利用者の責任範囲

ここからは、利用者側の責任の部分をみていきます。

AWS責任共有モデル(利用者)

利用者はAWSクラウド内で作成したすべてのリソースに対するセキュリティの責任があります。例えば、アカウントの管理については、誰が触れて、誰が触れないのかというアクセスの制御やネットワークのファイアウォール設定、Amazon EC2インスタンスのOSやソフトウェアの脆弱性対策、またデータの暗号化などの項目は全て利用者側責任になります。

しかし、これら全て利用者の責任といわれても、いったい何をどうしたらよいのかと感じてしまうかもしれません。そこで、AWSでは利用者側で対策が行えるよう、セキュリティに関するさまざまなサービスを提供しています。利用者はこれらをうまく組み合わせ活用していくことで、効率的に対策できるようになっています。

代表的な7つのAWSセキュリティサービス

利用者側のセキュリティ責任を担保するための、代表的な7つのAWSセキュリティサービスを紹介します。

AWSセキュリティサービス

(1)AWS Identity and Access Management (IAM)

AWS Identity and Access Management、通称IAMはAWSにアクセスする際の認証、認可をつかさどるサービスとなります。例えば、管理画面にログインする際の、パスワード設定など、AWSを使う上で必ず利用する重要なサービスとなります。

IAMでは、AWSのサービスとリソースに対して、非常にきめ細やかなアクセス制御がおこなえるようになっています。ある人はAWSリソースとなるAmazon EC2インスタンスを作成する権限があり、また、ある人は、Amazon EC2インスタンスを表示させることはできるけれど、起動や停止の操作はおこなえないなど、柔軟に権限を設定できます。

IAMはとても奥の深いサービスですが、まずおさえておきたいのは、AWSサービス、リソースに対する認証、認可をおこなえるという点になります。

IAM権限設定

MFA(多要素認証)

また、IAMの機能で、MFA(多要素認証)を設定することができます。MFAとはログインをする際に、通常のID、パスワードとは別に、もう一つ別の認証コードを入力する仕組みになります。AWSでは物理デバイスやスマートフォンのアプリをサポートしていて、万が一のセキュリティを高めるという意味で設定いただくことをオススメします。

IAMプリンシパル

IAMプリンシパルについて説明していきたいと思います。プリンシパルは、認証される対象を指し、認証の対象となりアクセス権限を付与されるユーザーのことを表しています。AWSではルートユーザー、IAMユーザー、IAMロールと大きく3つのプリンシパルが存在します。

プリンシパル = 認証される対象

プリンシパル

ルートユーザーとIAMユーザー

AWSの管理ログイン画面では、ルートユーザーとIAMユーザー2つの選択肢があります。ルートユーザーはAWSを契約した際のEメールアドレスとパスワードを使ってログインするユーザーです。どちらもAWSを利用する人、ユーザーを表していますが、使い分けが非常に重要で、特にルートユーザーの取り扱いについては注意が必要です。

IAMユーザーとルートユーザー

ルートユーザーの取り扱いに注意

ルートユーザーはAWSアカウント内のすべてのサービス、リソースに対する、すべての操作が可能なユーザーです。どんなこともできてしまう強力な権限となるため、日常的に利用するのは非常に危険です。ルート権限が必要な以下のような作業以外は、必ずIAMユーザーを利用します。日常でルートユーザーは使わないことを徹底します。

▼ルートユーザー権限が必要な作業

・AWSアカウント情報(連絡先など)の変更
・AWSサポートプランの変更
・請求に関する設定
・AWSアカウントの停止

※ルートユーザーの資格情報を必要とするタスク
https://docs.aws.amazon.com/general/latest/gr/root-vs-iam.html#aws_tasks-that-require-root

ルートユーザーに対するアクセスキーは絶対に作成しない

もう一点、重要なベストプラクティスとして、ルートユーザーに対してプログラムから利用するアクセスキーは絶対に作成しないというものがあります。AWSを利用する方法として、ブラウザ上の管理画面にログインして操作する方法と、プログラムからAWSのリソースを使い操作する方法があります。プログラムからAWSを使う場合には、パスワードとはまた違った認証方法として、下記のようなアクセスキーを利用する場合があります。

アクセスキーは作成しない

ルートユーザに対して、プログラムから利用するアクセスキーは絶対に作成してはいけません。

基本的に、ルート権限が必要なプログラムは存在しておらず、アクセスキーが漏洩した際のリスクが大きいので、ルートユーザーに対して、アクセスキーは生成しないというのが、ベストプラクティスとなります。
特権ID管理・データベース監査サービス

IAMユーザー

IAMポリシーで許可された操作のみ可能

日常的な操作に利用するIAMユーザーは、IAMの機能を使って、きめ細やかなアクセス制御を設定することができます。IAMユーザーを利用する際のポイントをいくつかあげてみたいと思います。まず、複数人で一つのIAMユーザーを共有して利用するのではなく、必ず一人一人にIAMユーザーを発行します。一つのIAMユーザーを複数人で利用すると、誰がいつ何をしたのかといった、操作履歴を追えなくなります。

IAMユーザー

また、必要な権限毎にグループにまとめて管理する、必要最小限の権限のみを与える、さらには必要に応じてMFA(多要素認証)を設定するといったセキュリティ対策を施します。

IAMロール

プリンシパルにはIAMロールというものもあり、AWSサービスやアプリケーションに対して、認証情報を一時的に払い出し、一時的な操作権限をあたえる仕組みです。

IAMロール

一時的な認証は操作できる時間が短いため、こちらをうまく活用することで、より安全にAWSを利用する事ができます。

IAMのベストプラクティス

IAMの利用方法について、AWSは公式にベストプラクティスとしてまとめています。
先ほどもお伝えしたルートユーザーのアクセスキーを発行しない、またMFAの有効化といったものも挙げられます。

・AWSアカウントのルートユーザーアクセスキーをロックする
・ロールを使用してアクセス許可を委任する
・最小権限を付与する
・AWS管理ポリシーを使用したアクセス許可の使用開始
・ポリシーを検証する
・インラインポリシーではなくカスタマー管理ポリシーを使用する
・アクセスレベルを使用して、IAM権限を確認する
・ユーザーに強度の高いパスワードポリシーを設定する
・MFAの有効化
・Amazon EC2インスタンスで実行するアプリケーションに対し、ロールを使用する
・アクセスキーを共有しない
・認証情報を定期的にローテーションする
・不要な認証情報の削除
・追加セキュリティに対するポリシー条件を使用する
・AWSアカウントのアクティビティのモニタリング

関連記事:AWSのIAMサービスで、クラウド時代のセキュリティ強化を
IAMでのセキュリティのベストプラクティス

次に、上記の最後に記載されている、「AWSアカウントのアクティビティのモニタリング」として、重要なサービス「AWS CloudTrail」を紹介します。

(2)AWS CloudTrail

AWSアカウントに対する操作履歴を記録するサービス

Cloud Trail

AWS CloudTrailはAWSアカウントに対して、どのIAMユーザーがいつ、何をしたかといった操作履歴を記録するサービスになります。90日までの履歴はデフォルトで記録されますが、それ以前のものを記録する場合には「証跡」という機能を有効化する必要があります。操作履歴は、監査証跡としても利用できますので、AWSのアカウントを作成した際には、証跡機能を是非有効化することをオススメします。

AWS CloudTrailの機能

・どのIAMユーザーが、どのAWSリソースに対して、いつ、何をしたかを追うことが可能
・記録には3つの種類がある
  ・管理イベント ※デフォルトで有効(コンソールログインやEC2の作成など)
  ・データイベント(S3オブジェクトの操作やLambda実行履歴など)
  ・インサイトイベント(アカウント内の異質な操作)
・過去90日までの操作履歴はデフォルトで保存される
・過去90日以前の操作履歴は「証跡」を有効化することでS3に保存される
・AWSアカウントを作成したら、まず「証跡」の有効化を!

つづいて、ネットワークのファイアウォールや侵入検知に対して、どのようなサービスが利用できるのか見ていきたいと思います。

(3)セキュリティグループ

AWSリソースに出入りできるトラフィックを制御する仮想ファイアウォール機能
「セキュリティグループ」をご紹介します。

セキュリティグループは、AWSリソースへのトラフィックを制御する仮想ファイアウォール機能であり、許可するプロトコル、ポート範囲、アクセス元IPアドレスや紐づけられているセキュリティグループの名前を指定して、許可設定をおこないます。デフォルトでは、全てのトラフィックは許可されておらず、ホワイトリスト方式で許可する必要があります。

セキュリティグループ

例: EC2インスタンス(AWSで稼働する仮想サーバ)に対して、送信元IPアドレスが192.168.x.xの場合はSSH 22ポートを許可する、など

▼お役立ちセミナー講演資料
AWS活用の基本がわかる! セキュリティと信頼性を高める ベストプラクティス

(4)AWS WAF

ウェブアプリケーションファイアウォールサービス

AWS WAF
WAF(ウェブアプリケーションファイアウォール)のサービスAWS WAFは、SQLインジェクション、クロスサイトスクリプティングといった、一般的な攻撃に対する保護ルールが提供されており、サービスを有効化することで、ウェブアプリケーションを保護できます。

なお、ユーザが独自に定義したルールも設定できますので、接続元のIPアドレスを指定したアクセス制限、同一IPアドレスからの接続数の制限などの設定も柔軟に行えるようになっています。

(5)Amazon GuardDuty

AWSアカウント内の不審な動きについて機械学習を用いて検知するサービス

Amazon GuardDuty
Amazon GuardDutyは、AWSのアカウント内で起きている、セキュリティのリスクを自動的に検出して可視化するサービスになります。こちらは、機械学習の技術を使用しており、記録したログを自動的に分析し、リソースの不正利用、脅威リスクを検出します。サービスの設定をONにするのみで、利用できるのでオススメです。

次に、EC2インスタンスの脆弱性対策に利用できるサービスをご紹介いたします。

(6)Amazon Inspector

Amazon EC2 および Amazon ECR(コンテナレジストリ)の自動脆弱性管理サービス

Amazon Inspector

Amazon InspectorはAmazon EC2インスタンスや、コンテナイメージに含まれているソフトウェアの脆弱性とネットワークのセキュリティリスクを継続的にスキャンします。通知機能を提供する他のAWSサービスと連携させることで、脆弱性を検出したタイミングで、アラートを発行できますので、リスクを放置することなく、すぐに対応することもできます。

最後にデータを暗号化できるサービスについて確認していきます。

(7)AWS Key Management Service (AWS KMS)

データ暗号化で使用されるキーを作成および管理するマネージドサービス

AWS KMS

AWS KeyManagiment Service通称KMSはデータの暗号化に使われる暗号化キーの作成と管理をおこなうサービスで、AmazonS3やAmazon RDSなどAWS上のサービスで、暗号化をおこなう場合には、ほとんどの場合にKMSを使用します。KMSの操作履歴は、全ての操作ログを記録するAWS CloudTrailに記録されて監査、コンプライアンスといった要件にも対応できます。

AWSを安全に利用するために(まとめ)

以上、利用者がセキュリティ対策をおこなうためのAWSセキュリティサービスについてご紹介してきました。

AWSを利用することで、責任共有モデルにおける下のレイヤーとなる物理的なレイヤーの責任についてはクラウド事業者側にオフロードできます。利用者側が責任を持つべきレイヤーについては、AWSが既に用意している豊富なセキュリティサービスをうまく活用することで、効率的にセキュリティを実現できます。

NHN テコラスは、AWSの最上位のプレミアティアサービスパートナーに選ばれており、AWSの活用を支援するサービスを提供しています。今回ご紹介したAWSのセキュリティサービスについては、プロフェッショナルサービスよりニーズに合わせて適切なセキュリティ対策のご提案を差し上げることも可能です。AWSのご利用でお困りの際にはお気軽にご相談ください。

AWS運用代行サービスをマンガで解説!

構成から見直して運用最適化を提案する!
▼こんなこと感じていませんか?
・AWS運用のための社内リソースが足りずに困っている
・障害発生時の対応に不安がある
・運用だけでなく、構成のアドバイスもあるとうれしい

おすすめの記事

おすすめのカテゴリ