見出し画像

AWS_SAA取得に向けて(Part2)

アイデンティティとガバナンス

アカウント:

✅ルートユーザ(全権限あり)、AWSアカウント
✅IAM ユーザ
基本的にはIAMユーザを適切に割り当てて利用し、極力ルートユーザは利用しないことがセキュアな運用にとっては重要。

AWS Organizations :

複数のAWSアカウントをグループ化しアカウント群の管理を一元的に行うサービス。グルーピングすることで複数のアカウントの請求を束ねて請求書を1枚にまとめたり、それぞれのアカウントで利用できるAWSサービスに制限をかけたりできる。

サービスコントロールポリシー (SCP) :

組織のアクセス許可の管理に使用できる組織ポリシーの1種。
アカウントに対する権限管理を一元管理できる。

https://docs.aws.amazon.com/ja_jp/organizations/latest/userguide/orgs_getting-started_concepts.html


AWS I AM (AWS Identify and Access Management) :

AWSアカウントの認証と認可を制御するために必要なインフラストラクチャを提供するサービス。

主要機能は以下の4つ
✅I AM ポリシー
✅I AM ユーザ
✅I AM グループ
✅I AM ロール

権限付与の流れ
1. AWSサービスやAWSリソースに対する操作権限をI AM ポリシーとして定義
2. I AM ポリシーを I AMユーザや I AM グループ、I AM ロールにアタッチ
3. I AM ユーザーまたは I AM グループに属する I AM ユーザとしてマネジメントコンソールにログインすると、付与された権限の操作を行うことができる。

I AM ポリシー:

◆ インラインポリシー:
単一のユーザ、グループ、ロールに直接追加するポリシー。
1つ1つ管理する感じ。

◆ 管理ポリシー:
AWS管理ポリシーとカスタマー管理ポリシーの2つ存在する。
カスタマー管理ポリシーについては5世代までのバージョン管理が可能。
AWS管理ポリシーで基本的な権限を付与し、カスタマー管理ポリシーでIPアドレス制限などの制約を行う。

◇ インラインポリシーは対象ごとに個別に設定するため管理が煩雑になる。⇒ 基本的にインラインポリシーは使わず管理ポリシーを使用する。

I AM アイデンティティセンター:

SSOとユーザのアクセス管理を中心としたサービスを提供。
◇ 主な機能
AWS Organizations と統合して利用し、複数AWSアカウントのコンソールをSSOでログインできるようにする。AWSアカウントのみならず対応しているアプリケーションへのSSOアクセスも提供。
AWSアカウントの認可はI AM ロールとそれに紐づくI AM ポリシーによって実現される

AWS Directory Service :

ユーザなどのリソース情報を管理するディレクトリサービスであり、認証と承認を一元管理する用途などで利用。

ディレクトリサービスについて

https://wa3.i-3-i.info/word12422.html

セキュリティサービス

責任共有モデル:

セキュリティとコンプライアンスにおいて、AWSが責任を持つ部分と利用者が責任を持つ部分の境界線の定義。
セキュリティの3要素
機密性
完全性
可用性

KMSとCloudHSM :

暗号化カギの作成と管理のためのサービス。
多くの場合はKMSを採用する。
CloudHSMを採用するのは以下のようなケース
・秒間100を超える暗号化リクエストがある
・公開鍵暗号化を使いたい

KMSの主要機能は鍵管理機能とデータ暗号化機能
データ暗号化機能としては以下の3つ。
✅Encrypt:データを暗号化
✅Decrypt:データの複合
✅GenerateDataKey:
ユーザがデータの暗号化に利用するためのデータを生成。
平分の鍵とEcryptで暗号化されたカギを返す。

◇ KMS keys のローテーションについて

データ暗号化:

クライアント暗号化とサーバ側暗号化の2種類。

クライアント暗号化:
ユーザ側の処理で暗号化する方式。ユースケースとしては経路の安全性が保障されない場合にクライアント側で暗号化したデータを送る。

サーバー側暗号化:
AWS側の処理で暗号化。S3のデータ暗号化設定など

ACM (AWS Certificate Manager):

AWS自身が認証局となりDV証明書を発行する無料で利用できるサービス。
ただしAWSのサービスに対してのみ。

ACMが連携可能なサービス

AWSのセキュリティサービス(抜粋)

Amazon GuardDuty:

AWS Cloud Trailのイベントログ、Amazon VPCのフローログ、DNSログなどのデータを分析しモニタリングすることで脅威を検出するサービス

https://pages.awscloud.com/rs/112-TZM-766/images/20220428_17th_ISV_DiveDeepSeminar_Guard_Duty.pdf

AWS Security Hub:

複数のアカウントの状況を一括してモニタリングするサービス。

https://pages.awscloud.com/rs/112-TZM-766/images/AWS-37_AWS_Summit_Online_2020_SEC02.pdf
https://pages.awscloud.com/rs/112-TZM-766/images/AWS-37_AWS_Summit_Online_2020_SEC02.pdf

Amazon Macie :

機械学習とパターンマッチングを利用してS3に保存されているデータから機密データを検出して保護するデータセキュリティおよびデータプライバシーサービス。
これにより機密情報を取り扱っていないシステムに機密情報が混入したことを検知するといったことが可能となる。

Amazon Inspector:

EC2、Lambda、などを解析し脆弱性が含まれていないか診断するセキュリティ評価サービス
大規模かつ継続的な脆弱性診断ができるため組織の中で管理するインスタンスが増えた場合でも簡単に管理することができる。

AWS Secrets Manager :

認証情報やAPIキーといったクレデンシャル情報を管理するサービス。
単純な保存や取得だけでなく、定期的なローテーションも可能。
クレデンシャル情報事態はKMSによって安全に管理される。

https://aws.amazon.com/jp/secrets-manager/

AWS Shield:

DDoS攻撃(分散型サービス拒否攻撃)からシステムを保護するサービス。
保護の対象は以下の5サービス。
✅EC2
✅ELB
✅CloudFront
✅Global Accelerator
✅Route53

AWS WAFと組み合わせると効果的。

AWS WAF :

Webアプリケーションに対する攻撃からシステムを守るサービス。
セキュリティルールはカスタマイズ可能
・クロスサイトスクリプティング
・SQLインジェクション
・IPアドレス
・リクエスト送信元の国などの地理的条件
・User-agentに含まれる値
これらのアクセスルールはSEB ACLという
CloudFrontおよび Application Load Balancer, API Gateway と統合して利用。

AWS Firwall Manager:

複数のAWSアカウントのセキュリティを一元管理する
管理対象は
✅ AWS WAF
✅ AWS Shield
✅ VPCのセキュリティグループ
✅ ネットワークACL

https://pages.awscloud.com/rs/112-TZM-766/images/202206_AWS_Black_Belt_AWS_FirewallManager_For_AWS_WAF.pdf

アーキテクチャ図

https://aws.amazon.com/jp/shield/

アプリケーションサービス

Amazon Simple Queue Service (SQS) :

AWSが提供するフルマネージドなメッセージキューイングサービス。
Pull型のサービスのためキューからメッセージを取得するにはConsumer側が取得しに行く必要がある。

メッセージキューとはなんぞや??

Standard キュー:
メッセージの配信順序を保証せず、同一のメッセージが2回配信される可能性がある

FIFOキュー:
メッセージの配信順序を保証する。秒あたりの処理件数はStandardキューに劣る。

ポーリング:

キューからメッセージを取得する方法
✅ショートポーリング(非推奨、API呼び出し回数が多くコストがかかる)
✅ロングポーリング(推奨)

可視性タイムアウト:
コンシューマーがキューからメッセージを受信して処理しても、そのメッセージはキューに保留されたままです。Amazon SQSでは、メッセージが自動的に削除されません。Amazon SQSは分散システムであり、接続の問題やコンシューマーアプリケーションの問題などが原因で、コンシューマーが実際にメッセージを受信するという保証がありません。そのため、コンシューマーはメッセージを受信して処理した後、キューからメッセージを削除する必要があります。

https://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html

遅延キュー:
キューに送られたメッセージを一定時間見えなくする機能。

メッセージタイマー:
個別のメッセージに対して一定時間見えなくする機能
両社ともメッセージ配信後すぐに処理されると問題がある場合に利用する。

◆可視性タイムアウトと遅延キューの違い
遅延キューの場合はメッセージが最初にキューに追加されたときに非表示になるのに対し、可視性タイムアウトの場合はメッセージがキューから処理された後のみ非表示になる。

ワークフローサービス:

✅ AWS SImple Workflow Service (SWF)
✅ AWS Step Functions
両社はほぼ同じことができるが Step Functionsにはワークフローを可視化して編集できる機能があるため、こちらの方が簡単にワークフローが作成できる。

Amazon Simple Notification Service (SNS) :

プッシュ型の通知サービス。
マルチプロトコルに簡単に配信でき、Lambdaとの連携も可能。
SQSや CloudWatchと組み合わせてシステム間の連携や外部への通知に利用される。
トピックという単位で情報を管理する。

Amazon Simple Email Service (SES):

Eメール送信のサービス。SMTPプロトコルを利用して、あるいはプログラムから直接Eメールを送信する際に利用する。

◇ SNSがあれば Email も送れるしぶっちゃけ SES いらなくないか?と思ったので知らべてみた。

結論 : 大量のEmail送信や、高度な管理が必要な場合にSESを利用する

分析サービスとデータ転送サービス

Amazon EMR :

分散処理フレームワーク。
分散処理基盤と分散処理アプリケーション基盤の2つからなる。
EMRとはなんぞや?

EMRもEC2インスタンスのためコスト面では利用シーンからもスポットインスタンスとして設定するのが好ましい。
分散処理 (Auto Scaling) + スポットインスタンスの利用を念頭にサービスを利用するとよい

ETL (Extract transform Lord) ツール :

データソースからの抽出・変換・投入の役割を果たす。

Amazon Kinesis :

ストリーミング処理プラットフォームで以下4つの機能で構成されている。
Data Streams:ストリームデータの収集、保存
Data Firehose:ストリームデータをAWSまたは外部サービスへロード
Video Streams:ビデオストリームの収集、保存
Data Analystics : Apache Flinkによるストリームデータ分析
Managed Streaming for Apache Kalfa :
フルマネージド、高可用性、Apache Kalfaのマネージドサービス

https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2023_AmazonKinesisDataStreams_0430_v1.pdf

KinesisとSQSがどちらもメッセージキューの仕組みを使っている気がしたので調べてみた。

※Amazon Kinesis Data Streamsは処理のみでほかサービスへ配信する機能はないため後ろにLambdaやAmazon Kinsis Data Firehoseなど他へ配信できるサービスを配置する必要がある。

忘れそうなので備忘録

ETL : Extract 、Transform、Loadの頭文字をとったもの。データの操作で用いられる。

https://dev.classmethod.jp/articles/difference-between-kinesis-streams-and-kinesis-firehose/


Apache Flink, Apache Kalfaとはなんぞや??

AWS Data Pipline :

データ処理やデータ移動を支援するサービス。
Data Pipelindeでパイプラインを設定すると、オンプレミスやAWS上の特定の場所に定期的にアクセスし、必要に応じてデータを変換しS3、RDS、 DynamoDBなどのAWS各種サービスへ転送する
⇒ バッチ処理のETLを構築する際に有効

Amazon Athena :

標準SQLを使ってS3のデータを直接分析できる対話型のクエリサービス。

ETLツールそれぞれのユースケースが理解できなかったので調べてみた

https://pages.awscloud.com/rs/112-TZM-766/images/AWS_ETL_services_tips_202107.pdf

Amazon QuckSight :

データの可視化ツール。簡単にダッシュボードが作成できる。

AWS Snowaball :

オンプレミスからAWSに大容量のデータを転送する際に利用する物理的なデータ転送デバイス。
【利用手順】
・AWSにSnowballデバイスの利用を依頼
・AWSからSnowballデバイスが届いたら、ローカルネットワークを利用してオンプレミス機器とSnowballデバイスを接続し、データを転送する。
・データの転送が完了したらデバイスをAWSに返送。
AWSはデバイスを受け取り、指定されたS3バケットにデータをアップロードする。

AWS Transfer Family :

SFTP、FTPなど一般的なファイル転送プロトコルを利用できるデータ転送サービス。
SFTPとFTPを初めて聞いたので調べてみた

AWS DataSync :

オンプレミスからAWS, AWS同士のデータ転送を行うサービス。
対応しているストレージサービスは以下の3つ。
✅ Amazon S3
✅ Amazon EFS
✅ Amazon FSx

◎メリット
・フルマネージド型サービスのためサーバ管理不要
・高速なデータ転送
・データ検証:
転送完了後にソースとターゲットのデータが一致することを検証するためデータの一貫性と完全性が保証される。

オンプレからAWSへのデータ転送
https://aws.amazon.com/jp/datasync/
AWS間のデータ転送
https://aws.amazon.com/jp/datasync/
AWSと他パブリッククラウド間のデータ転送
https://aws.amazon.com/jp/datasync/

コスト管理

インスタンスを要件に合わせて最適化することがコスト管理では重要

割引プランの適用戦略
EC2には以下の3つのプランが存在しており、これらを適切に組み合わせることがコスト削減につながる。
・リザーブドインスタンス / Saving Plans:長期利用を前提とした割引プラン
・スポットインスタンス:急に停止する可能背もあるが大幅な割引をりようできるプラン
・オンデマンドインスタンス:通常の料金プラン

コスト管理サービス
✅ AWS Cost Explorer :
AWSのコストと使用料を可視化

✅ AWS Budgets :
コストや使用料に対して予算を設定する。
コストや使用料が閾値を超えると通知される。

サービスごとのコストについて
起動時間に応じて料金が発生するタイプ
✅ ElasticCache
✅ RDS
✅ ALB
✅ EC2
✅ Aurola

他はリクエスト処理に応じて料金が発生するタイプ



この記事が気に入ったらサポートをしてみませんか?