五島移住エンジニアの日々

2024年夏、五島に移住します!移住に関する情報や、エンジニアとしてのアウトプットなど中心に書いていきます!

AWSクラウドプラクティショナー 第3章 責任共有モデル

クラウドラクティショナー勉強録シリーズ。
飲み会やらなんやらでちょっと間が空いてしまったが再開! toyamadori.hatenablog.com



一般技術キーワード

ハイパーバイザー

仮想化技術を提供するソフトウェアまたはファームウェアの一種。
マイクロソフトHyper-VLinuxで使われるKVM(Kernel-based Virtual Machine)など。

VMとハイパーバイザーは何が違うのか

VMはハイパーバイザー上で動作する仮想マシンそのものを指し、ハイパーバイザーはハードウェアとVM間の仲介役として機能するソフトウェアを指す。

Type 1 ハイパーバイザー

オペレーティングシステム(OS)なしに直接ハードウェア上で動作する。
ホストマシンが仮想化専用で、仮想マシンはハイパーバイザ上で直接実行される。
WSL2はHyper-Vを使用しているため、「Type1ハイパーバイザーを使用しているサブシステム」。

Type 2 ハイパーバイザー

ホストオペレーティングシステム(例: WindowsLinux)上で動作する。
VirtualBoxはType2ハイパーバイザーの一例。

VMエスケープ

悪意のあるユーザーが仮想マシンからホストシステムにアクセスしようとすること。

VMホッピング

仮想化環境で複数の仮想マシンが同じホストシステム上で実行されている場合に、攻撃者が異なる仮想マシン間で横断的な行動を行う手法。

管理プレーン

ネットワークやシステムにおいて、デバイスやリソースを管理・制御するための機能やインターフェースが提供される領域。
(プレーン=面)
AWSにおいては以下のようなものが挙げられ、これらはユーザーの責任範囲となる。

  • IDとパスワード
  • キーペア
  • APIキー
  • アクセス制御や権限管理

インバウンドトラフィック

ウェブサイトに訪れるユーザーやアクセスが外部から内部に向かうトラフィックを指す。
逆に、他のサイトに誘導するものはアウトバウンドトラフィック

ダウンタイム

アプリケーションが正常に機能していない期間。

レイテンシー

特定のプロセスやデータ伝送において生じる遅延や待ち時間。

PCI DSS

Payment Card Industry Data Security Standard。
クレジットカード会員の情報保護を目的に定められたセキュリティ基準。

AWSキーワード

AWS IAM

「Identity and Access Management」(=アイデンティティ(≒身元)およびアクセス管理)
ユーザーのAWSクラウドリソースへのアクセス権限を管理するサービス。
サインアップ時に作成したアカウントがルートアカウントで、そのアカウント内に権限を必要最小限に絞ったIAMユーザーIAMグループを作成して運用するのが基本。

IAMロール

IAMユーザーにロール切り替えの許可を与えておき、例えば管理者運用者などのロールを用意する。
普段は運用者で作業を行い、システムアップデートなど必要な作業が発生したときに管理者のロールに切り替える、といった運用がベストプラクティスとされる。
各顧客むけのロールを用意して、各顧客環境で誤操作しないように防ぐといった運用もある。
ロールを引き受けると元のIAMユーザーやIAMグループの権限は無効になる

AWS WAF

そもそもWAFとは「Web Application Firewall」の略でWebサイト上のアプリケーションに特化したファイアウォール
XSSの検知の他、リクエストパラメータおよびペイロードの検査などを行い、ユーザーの入力や動的ページなどを不正な攻撃から守る役割がある。
AWS WAFも基本利用料は無料

Web ACL

Access Control Listの略。
AWS WAFにおいて使用される。
セキュリティのポリシールールや優先順位付けなどを管理するリソース。
適用するサービスを選ぶ必要があり、以下のどれかから選ぶ必要がある

  • CloudFront
    • ※静的コンテンツを低レイテンシーで供給したり、キャッシュを提供する役割。
      CDN
  • ALB (Application Load Balancer)
  • API Gateway

AWS Artifact

コンプライアンスレポートにアクセスできる。
その他にもセキュリティや契約の確認・管理をサポートするサービス。

AWS KMS

Key Management Service。
暗号化キーを作成・管理できる。

Amazon Inspector

EC2上にデプロイされたアプリケーションのセキュリティコンプライアンスを向上させるための脆弱性診断を自動で行うサービス。
評価が実行された後、重大性の順に結果を表示した詳細なレポートを作成してくれる。

AWS Shield

DDoS攻撃の保護サービス。
StandardとAdvancedの2つのレベルでのサービスが有る。
すべてのユーザーは追加料金無しAWS Shield Standardの適用を自動的に受ける事ができる。

概念

マネージドなサービス

ChatGPTより。

特定の業務やプロセスを外部の専門業者やサービスプロバイダーに委託し、その業務やプロセスを彼らが管理・運営するサービスのことを指す。
これによって、利用者は特定の業務や技術の専門的な面倒を外部に委託し、自らはその管理や運用にかかる負担を軽減できる。

AWSの中でもマネージドとアンマネージドなサービスがある。
ただし、これらの中でも部分的にマネージドだったりアンマネージドだったりするようで、要はより抽象的に使えるように扱えるようなサービスがマネージド(=管理されている)と考えるのが良さそう。

サービス名 分類
S3 マネージドなオブジェクトストレージ
Lambda マネージドなサーバレスコンピューティングサービス
EC2 アンマネージドクラウドサービス
VPC アンマネージドネットワークサービス

責任共有モデル

AWSの責任

クラウド本体のセキュリティに責任がある。
ハード面はもちろん、マネージドなサービスのソフトウェアアップデートやセキュリティパッチもAWSの担当。

ユーザーの責任

クラウド内のセキュリティに責任がある。
OSやファイヤウォール構成やユーザーデータなど。
ユーザーの責任だが、AWSのセキュリティサービスを利用して適切に設定して管理するという考え方。

秘密鍵の共有がダメな理由

秘密鍵を共有することは不正アクセスのリスクになる上、規約的にもダメじゃないか?という認識だったが、それ以外の理由として「誰がアクセスしたのか特定するのが難しくなる」ということも挙げられていて、気づかなかった視点だったのでメモ。
やろうとしている人がいたらこの理由も添えて止めよう。

アクセスキーとシークレットアクセスキー

IDとパスワードと同等のもの。
ルートアカウントのAPIキーを発行すると大変危険なので気をつけよう。

アクセスキー

IDにあたるもので、AWSにアクセスするための20文字の識別子。
公開情報であり、他の人に知られても問題ない。

シークレットアクセスキー

パスワードにあたるもので、アクセスキーに対応する秘密の文字列。
秘密情報であり、他の人に知られないようにするべき。 シークレットアクセスキーはAWS APIリクエストを署名するために使用され、署名が正しい場合にのみリクエストが受け入れられる。

セキュリティのベストプラクティス

転送中データの保護

EC2などアンマネージドなサービスを利用する際、FTPではなくSCPといった具合に暗号化されたプロトコルを利用しよう

蓄積データの保護

ストレージやDBの暗号化オプションを適切に利用しよう。 物理的な保護はAWSの責務だが、極端な話データセンターに出入りする人が悪意ある人だったら個人情報にアクセス可能な状態になってしまうという観点。

AWS資格情報の保護

当たり前だが無闇矢鱈に権限をつけない。

アプリケーションの安全性の確保

SQLインジェクションクロスサイトスクリプティングなど、自分でできる既知の攻撃に対する対策は怠らないように。

セキュリティグループ

1つ以上のインスタンスをグループ化して、そのグループごとにトラフィックを制御する仮想ファイアウォール

感想

インフラ周りは通ってこなかったのでセキュリティ関連が弱いことを再認識しました…
AWS関連の単語以外にも、ぱっと日本語に変換できる言葉が少なかったのでこれを期にしっかり頭に定着させたいと思います!!