カテゴリー
2022年 AWS AWS Solutions Architect - Associate クラウド コンピューター 技術一般 認定資格

AWSを学ぶ(25)VPCエンドポイントを理解しよう

PVアクセスランキング にほんブログ村 にほんブログ村 ブログブログへ
にほんブログ村

例えば、S3 や DynamoDB などといったサービスは、インターネットから直接利用できる、VPC 外の AWS サービスとなります。

これらへのアクセスは、VPC 内の AWS リソースからインターネットゲートウェイを経由して通信します。つまり、通信がインターネットに一度出ます。

セキュリティーを考えると、インターネットには出したくないというケースもあるでしょう。そこで VPC エンドポイントです。

VPC エンドポイントとは

VPC エンドポイントは、セキュリティ上の制約でインターネットとの通信が制限されているプライベートサブネット内の AWS リソースから、インターネットゲートウェイを経由せずに、VPC 外の AWS サービスへアクセス可能にする機能です。

VPC エンドポイントの種類と特徴

VPC エンドポイントには 3種類があり、それぞれ利用できるAWS サービスが異なります。

1. ゲートウェイエンドポイント(ゲートウェイ型)

ゲートウェイエンドポイントは、Amazon S3 または DynamoDB のみ対応しています。

S3 や DynamoDB へ接続したいリソースが配置されている VPC に VPC エンドポイントを割り当て、ルートテーブルにターゲットが VPC エンドポイントのルーティングを設定します。

ゲートウェイエンドポイントを使って S3 や DynamoDB にアクセスする時のイメージ

DynamoDB はゲートウェイ型のみ利用できますが、S3 はゲートウェイ型と PrivateLink の両方で利用可能です。

ゲートウェイエンドポイントは料金なしで使用できます。

2. インターフェイスエンドポイントAWS PrivateLink(インターフェイス型))

インターフェイスエンドポイントは AWS PrivateLink を使用し、サービスを送信先とするトラフィックのためのポイントとして Elastic Network Interface (ENI) を使用します。

サービスへ接続したいリソースが配置されているサブネットにプライベートIPアドレスを持つENIを作成し、ENIとサービスをリンクさせます。

AWS PrivateLink を使って CloudWatch や S3 にアクセスする時のイメージ

数多くの AWS サービスに対応しています。

AWS PrivateLinkと統合できる AWS のサービス

プライベート IP アドレスを使用して、VPC 内、オンプレミス、または VPC ピアリングや AWS リージョン を使用する別の AWS Transit Gateway にある VPC から Amazon S3 にリクエストをルーティングすることにより、ゲートウェイエンドポイントの機能を拡張します。

時間単位の使用料金とデータ処理料金が課金されます。

ゲートウェイ型とインターフェース型の比較

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#types-of-vpc-endpoints-for-s3

3. Gateway Load Balancer エンドポイント

ゲートウェイロードバランサーのエンドポイントは AWS PrivateLink を使用し、サービスを送信先とするトラフィックのためのポイントとして Elastic Network Interface (ENI) を使用します。

時間単位の使用料金とデータ処理料金が課金されます。

VPC エンドポイントポリシー

エンドポイントの作成時、または変更時にエンドポイントにアタッチする IAM リソースポリシーのことです。

注意点は、以下の通りです

  • エンドポイントの作成時にポリシーを適用しない場合、サービスへのフルアクセスを許可するデフォルトのポリシーが適用
  • サービスがエンドポイントポリシーをサポートしていない場合、エンドポイントはサービスへのフルアクセスを許可

エンドポイントポリシーは、IAM ユーザーポリシーやサービス固有のポリシー (S3 バケットポリシーなど) を上書き、または置き換えません。これは、エンドポイントから、指定されたサービスへのアクセスを制御するための別のポリシーであるためです。

また、1つのエンドポイントに複数のポリシーを関連付けることはできません。

ポリシーはいつでも変更可能です。

おもしろかったら、フォローしてください!

世の中には楽しいことがいっぱい - にほんブログ村

最近の人気ブログ TOP 10:

関連する記事:

最近の記事:

カテゴリー
2021年 AWS AWS Solutions Architect - Associate Azure Microsoft MS Azure Administrator MS Azure Fundamentals クラウド コンピューター 技術一般 認定資格

MS Azure を学ぶ (0) 用語比較

にほんブログ村 ブログブログへ
にほんブログ村

用語比較

並べて比較してみると、やはり分かりやすいです。

Azure の言葉も何となくは知っていたのですが、これではっきりしました。

AWS 用語Azure 用語
EC2 (Elastic Compute Cloud)Virtual Machines
仮想サーバーにより、OS やサーバー ソフトウェアをデプロイしたり、管理や保守が行える。
AWS 用語Azure 用語
Auto ScalingVirtual Machine Scale Sets
負荷を見て、VM インスタンスの数を自動的に変更する。
AWS 用語Azure 用語
VPC (Virtual Private Cloud)VNET (Virtual Network)
クラウド内の分離されたプライベート環境のこと。 ユーザーは、独自の IP アドレス範囲の選択、サブネットの作成したりして、自分の仮想ネットワーク環境を制御できる。
AWS 用語Azure 用語
NAT GatewaysVirtual Network NAT
仮想ネットワークでアウトバウンド専用のインターネット接続が簡単になるサービス。プライベートサブネットで外部ネットワークと通信する際に使用する。
AWS 用語Azure 用語
VPN GatewayVPN Gateway
仮想ネットワークを他の仮想ネットワーク、または顧客のオンプレミス ネットワークに接続 (サイト間) できる。
AWS 用語Azure 用語
Route 53DNS
サービスで提供される DNS。これにより、各 DNS レコードを管理する。
AWS 用語Azure 用語
Direct ConnectExpress Route
ある場所からクラウド プロバイダーへの (インターネット経由ではなく) 専用のプライベート ネットワーク接続を確立する。
AWS 用語Azure 用語
ALB (Application Load Balancer)Application Gateway
レイヤー 7 のロード バランサー。 SSL ターミネーションやラウンド ロビンによるトラフィックの負荷分散をサポートする。
AWS 用語Azure 用語
NLB (Network Load Balancer)Load Balancer
レイヤー 4 (TCP または UDP) でトラフィックを負荷分散する。
AWS 用語Azure 用語
CloudFrontAzure CDN
クラウドプロバイダーで提供される CDN サービス
AWS 用語Azure 用語
Certification Managerポータルで使用可能な App Service 証明書
クラウド内で証明書をシームレスに作成、管理できるようにするサービス。
AWS 用語Azure 用語
S3 (Simple Storage Services)Blob Storage
バックアップ、アーカイブ、ディザスター リカバリーなど向けのオブジェクト ストレージ サービス。
AWS 用語Azure 用語
EBS (Elastic Block Storage)マネージドディスク
I/O 集中型読み取り/書き込み操作用に最適化された SSD ストレージ。
AWS 用語Azure 用語
S3 GlacierStorage アーカイブアクセス層
ストレージ コストが最も低くいアーカイブ ストレージ。

Azure Administrator (AZ-104)の教材

私がAZ-104に合格するまでに使った教材を紹介します。

合格対策Microsoft認定試験AZ-104:Microsoft Azure Administratorテキスト&演習問題

posted with カエレバ

Azure をあまり触ったことのない人は、これから始めるのが良いかと思います。

内容は分かりやすく、全分野をカバーはしています。ただ、深いところまでは説明がなく、これだけで合格は厳しいと思います。

(模擬試験付き)徹底攻略 Microsoft Azure Administrator 教科書 [AZ-104] 対応

posted with カエレバ

この教材が一番良いのではと思います。試験内容をカバーしているのは当然ですが、説明もしっかりしています。

ただ、この教材に付いている模擬問題は、本番の内容に比べると簡単なので、この問題を解ければ合格とは思わない方がいいです。

試験前の力試しには、やはりUdemyの問題が良いです。

私は以下の2つを使いましたが、本番を想定した内容となっており、しかも、いくつかはほぼ同じ内容の問題も出ていました。

AZ-104: Microsoft Azure Administrator 模擬試験問題集

AZ-104: Microsoft Azure Administrator 2022年 模擬試験問題集

関連する記事:

最近の記事:

カテゴリー
2021年 AWS Solutions Architect - Associate MS Azure Fundamentals クラウド コンピューター 技術一般 認定資格

パブリッククラウドを学ぶ

にほんブログ村 ブログブログへ
にほんブログ村

AWS シリーズ

Microsoft Azure シリーズ

カテゴリー
2020年 AWS AWS Solutions Architect - Associate クラウド コンピューター メッセージング 技術一般 認定資格

AWS を学ぶ(24)3つのメッセージングサービス

PVアクセスランキング にほんブログ村 にほんブログ村 IT技術ブログへ
にほんブログ村

AWS には、SNS(Simple Notification Service)、SQS(Simple Queue Service)、SES(Simple Email Service)といった 3 つのサービスがあります。

これらの違いは以下のようになります。

  • Amazon SNS:プッシュ型の通知が得意。メール通知、SMS、モバイルプッシュが可能。要領制限があり、長文メッセージには向いていない。
  • Amazon SES:Eメールでの配信が得意。コンテンツ配信に向いているが、メール以外での配信はできない。
  • Amazon SQS:プル型のメッセージ処理が得意。非同期型のメッセージをキューイングする。

Amazon SNSとは

Amazon SNS(以下、SNS)は、わざわざそのためだけにサーバーを用意しなくても、SNS サービスを利用することで、アプリケーションからの通知を可能にします。ユーザーが何かを行ったタイミングを起点としてで通知するメッセージングを手軽に実現できます。

具体的な通知の例としては、商品が発送されたタイミンングでの発送完了通知や、フリーマーケットで商品が売れた時の通知などがあります。

またこれだけでなく、登録ユーザー全員に一斉告知のメッセージを送るという使い方もできます。

SNSの特徴
  • イベントをトリガーとしてのメッセージ

商品の購入、アカウント情報の変更、コンテンツの更新などの利用できます。

  • モバイル端末へのプッシュ機能

iOS、Android などのスマートフォンに対してプッシュ通知が行えます。

  • セキュリティーを確保

HTTPS API による通信のセキュアな状態を保つことが可能です。

  • サービスとしての利用

前払いや最低料金などはなし。完全な従量課金制で使った分しか支払う必要がありません。

Amazon SES とは

Amazon SES (以下、SES)は、AWS が提供するメールサービスです。メールサーバーをわざわざ用意しなくても、SES サービスを利用すれば、メール配信が可能になります。

具合的な使い方としては、マーケティングメールの配信メールマガジンの配信などがあります。

SES は、導入コストが安いことや、固定費用が掛からず従量課金という点で、企業レベルでの利用だけでなく、個人レベルでの利用にも向いています。

SES の特徴
  • 安い導入コスト

AWS のアカウントとメールアドレス、利用可能なドメインがあれば利用できます。

  • 低価格な料金

固定費用や最低料金はなし、従量課金で利用できます。

EC2 でホストされているアプリケーションからの配信の場合、毎月最初の 62,000 通は無料です。その後でも、1,000 通毎に、0.1 USDしかかかりません。

  • 高い信頼性

SES には、送信したメールが確実に届く様に、信頼性を高める機能があります。送信頻度のコントロールやアドレス偽装対策などです。

Amazon SQS とは

Amazon SQS(以下、SQS)は AWS が提供するキューイングサービスです。アプリケーションの切り離し(疎結合)とスケジューリングといった処理を、AWS のサービスで行えます。

キューとは、メッセージを管理するための入れ物のようなものです。

エンドポイントと呼ばれるURLを介して、キューに入ったメッセージを利用します。

SQS の利用パターン例

  • 一回の処理で許容する処理時間を超過しそうな場合
  • 一度に大量のデータ件数を処理する場合
キューの種類

キューの種類には、以下の 2種類があります。

処理数が優先なら標準キュー、順序が重要なら FIFO キューといった使い方になります。

  • 標準キュー(Stanadrdキュー)

ほぼ無制限のトランザクション数(TPS)を処理します。

ただし、メッセージを受け取った時とは異なる順序で配信されることもあります。また、複数の同じメッセージのコピーが配信されることもあります。

  • FIFO キュー

バッチ処理なしで毎秒最大 300 件、バッチ処理ありで最大3,000件のトランザクション (TPS)をサポートします。また、メッセージが送信または受信された順序が厳密に保持されます (先入れ先出し)。

トランザクション処理は、標準キューより下がります。

SQS 向けの機能
  • 可視性タイムアウト

設定した期間、重複したメッセージ配信が行われないようにする機能

メッセージは、受信しただけでは削除されず、クライアント側からの明示的な削除指示を受けた際に削除されます。そのため、メッセージの受信中に、たのクライアントが取得してしまう可能性もあります。それを防ぐ機能となります。

デフォルトは30秒で、最大12時間まで設定できます。

  • ショートポーリングとロングポーリング

キューからのメッセージ取得の際で、対象のキューがない場合、キューに新規登録されるのを一定時間待つ機能。

待機する(メッセージがある場合にレスポンスを返す)のをロングポーリング、待機しない(リクエストを受け取ると、メッセージがあるなしに関わらず、即レスポンスを返す)のをショートポーリングと呼びます。

デフォルトはショートポーリングになります。

  • デットレターキュー

正常に処理できないデータを別のキュー(デッドレターキュー)に格納する機能

問題のあるメッセージ(処理失敗を1ー1,000回で設定)を分離して、処理が成功しない理由を調べることができるため、デッドレターキューは、アプリケーションやメッセージングシステムのデバッグに役立ちます。

  • 遅延キュー

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

  • メッセージタイマー

個々のメッセージを一定間隔見えなくする機能

メッセージサイズ

キューに格納できるメッセージサイズの最大は256KBとなります。

大きなサイズのデータを扱う際には、S3やDunamoDBに一旦格納し、そこへのパスやキーといったポインターとなる情報を渡すことで対応できます。

この教材を使って勉強してます。

AWS認定資格試験テキスト AWS認定ソリューションアーキテクト-アソシエイト

AWSに関連する記事:

関連する記事:

最近の記事:

カテゴリー
2020年 AWS AWS Solutions Architect - Associate PaaS クラウド コンピューター サーバレス 技術一般 認定資格

AWS を学ぶ(21)Elastic Beanstalk って何だろう?

PVアクセスランキング にほんブログ村 にほんブログ村 IT技術ブログへ
にほんブログ村

AWS Elastic Beanstalk (以下、Elastic Beanstalk)は、アプリケーションを実行するインフラを学習することなく、AWS でアプリケーションを素早くディプロイ、管理できます。これにより、管理の複雑さを激減させることが可能となります。

つまり、PaaS(Platform as a Service) ですね。

ユーザーは、アプリケーションをアップロードするだけです。あとは、AWS 側で、Elastic Beanstalk が自動的に、容量のプロビジョニング、負荷分散、拡張、及びアプリケーションの状態のモニタリングを処理します。

つまり、ユーザーは、アプリケーション開発にのみ集中し、インフラの方はAWSに任せてしまうということです。正にクラウドですね。

Elastic Beanstalk は、複数のアプリケーションをサポートしています。

  • Go
  • Java
  • .NET
  • Node.js
  • PHP
  • Python
  • Ruby

アプリケーションをデプロイすると、Elastic Beanstalk は選択されたサポートされるプラットフォームのバージョンをビルドし、複数の AWS リソースをプロビジョニングして、アプリケーションを実行します。

Elastic Beanstalk に関して別途料金が発生することはありません。アプリケーションが使用する基になる AWS リソースに対してのみ支払うだけとなります。

Elastic Beanstalk を使ってみる

Elastic Beanstalkは、便利そうということは分かったのですが、やはりまだピンと来ません。実際に触ってみましょう。

Elastic Beanstalk には、サンプルアプリケーションが用意されています。それを使って試してみましょう。

AWS 管理コンソールの検索メニューから、「Elastic Beanstalk」と入力し、クリックします。

Elastic Beanstalk の管理画面が表示されます。

今すぐ始めるのところの「Create Application」をクリックします。

ウェブアプリケーションの作成画面が表示されます。

アプリケーション名を入力します。

キーも入力します。

プラットフォームは、Tomcat を選択します。そのオプションは、表示されたものをそのまま使います。

画面下部の「アプリケーションの作成」をクリックして、次に進みます。

アプリケーションの作成が始まりました。

完了するまでに、5分くらいかかります。

ログを見ていると、EC2 にインスタンスを作ったり、ELB を作成したり、いろいろしていますね。

アプリケーションの作成が完了しました。

環境名のところに、アプリケーションのアクセス先になるURL が表示されています。それをクリックしてアクセスします。

ブラウザーが開き、サンプルアプリケーションが表示されました。

動作確認成功です。

アプリケーションの作成時に、いろいろとリソースを作成するログが見えましたので、実際に見て見ましょう。

EC2 の画面を見て見ます。インスタンスが新規に作成されてますね。

次に、ELB も見て見ます。ELB が新規で作成されています。

ELB のDNS 名にもアクセスして見ましょう。サンプルアプリケーションの画面が表示されますね。

ELB のターゲットグループも、ちゃんと作成されています。

次に、CLoudFormation を見て見ます。こちらにもスタックが作成されています。

最後に、S3 です。ここにも新規でバケットができています。

必要となるリソースを自動で作成して、アプリケーションを展開するというのは本当ですね。これは素晴らしいです。

先ほどは、サンプルアプリケーションでしたので、今度はサンプルじゃないアプリケーションを動かしてみたくなりました。

しかし、私はコードが書けません。そこで、インターネット上に何かアプリケーションが公開されていないかと探してみたら、ありました!私と同じ様に、Elastic Beanstalk を試してました。それを動かしてみようと思います。

新規でアプリケーションを作成します。

アプリケーション名を入力します。

キーも入力します。

プラットフォームは、先ほどと同じでTomcat です。

そのオプションは、表示されたものをそのまま使ってみましょう。

今回は、アプリケーションを持ち込みますので、「アプリケーションコード」のところは、「コードのアップロード」を選択します。

「ファイルを選択」をクリックして、アプリケーションをアップロードします。

注意点は、アップロードするアプリケーションを圧縮しておく必要があるみたいです。

画面下部の「アプリケーションの作成」をクリックします。

アプリケーションの作成が始まりました。

5分くらいで、アプリケーションの作成が完了しました。

ブラウザーでアクセスしてみましょう。

表示されました。持ち込みアプリケーションでも、動作確認成功です。

Elastic Beanstalk は、アプリケーションのバージョン管理もできるみたいです。

Elastic Beanstalk は、アプリケーション開発者にとって、素晴らしい環境だと思います。自分のアプリケーションを動かすインフラ側の環境は、一切気にすることなく、AWS が自動で作成してくれます。コードを書くことだけに集中できますね。

この教材を使って勉強してます。

AWS認定資格試験テキスト AWS認定ソリューションアーキテクト-アソシエイト

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト【電子書籍】[ 佐々木 拓郎 ]価格:2,618円
(2020/8/30 16:09時点)
感想(0件)

AWSに関連する記事:

関連する記事:

最近の記事:

カテゴリー
2020年 AWS AWS Solutions Architect - Associate クラウド コンピューター 技術一般 証明書 認定資格

AWS を学ぶ(20)AWS Certificate Manager を使ってみる

PVアクセスランキング にほんブログ村 にほんブログ村 IT技術ブログへ
にほんブログ村

前回に引き続き、今回も暗号化に関する記事です。

インターネット通信に、暗号化は必須となりました。サーバーとのやり取りの暗号化、そのアクセス先のサーバーの信頼性を確認するために、サーバー証明書が使われています。

その際に利用されるプロトコルが、SSL (Secure Sockets Layer) / TLS (Transport Layer Security) となります。

そこで使用される証明書は、SSL 証明書と呼ばれます。実際に使用されているのは、SSL 3.0 をベースにした後継のプロトコルであるTLSとなります。

SSL 証明書の種類と役割

証明書は、主に以下の2つのために使用されます。

  • 通信経路での安全性の確保
  • 通信している相手が誰であるかの証明

通信経路の安全性の確保は、通信内容を盗聴されない様にすることと、通信内容を改ざんされない様にすることのために使用されます。

通信している相手が誰であるかの証明には、証明局(CA: Certification Authority)を使用し、ここで証明書を発行・管理します。

証明書の種類

証明書には、以下の 4 種類があります。

  1. 自己証明書:自分で証明局を建てて証明書を発行
  2. ドメイン証明(DV):ドメインの所有のみを証明し、組織情報の証明はされない
  3. 組織証明(OV):組織情報を証明
  4. 拡張認証(EV):OV よりも厳しい審査で認証し、アドレスバーに組織名が表示される

Vは「Validation」の略で、DV = Domain Validation、OV = Organization Validation、EV = Extended Validationになります。それぞれのもう少し細かい説明は、ここのページが参考になります。

AWS Certificate Manager

AWS Certification Manager (以下、ACM)は、AWS が証明局となり、DV 証明書を発行するサービスです。

2048ビットRSA鍵と、SHA-256 の SSL/TLS サーバー証明書の「作成と管理」を行います。ACM が発行する証明書の有効期限は13ヶ月となり、自動で更新するという設定も可能となります。

ACM を利用できる対象は、AWS のサービスのみとなりますが、無料で使用できるというメリットがあります。

ACM の初期設定時には、ドメインの所有の確認が必要で、メール送信、またはDNS を利用して確認します。

ACM が利用可能なサービス(2020年9月現在)

  • Elastic Load Balancer (ELB)
  • Amazon CloudFront
  • AWS Elastic Beanstalk
  • Amazon API Gateway

AMC を使ってみる

AWS 管理コンソールの検索テキストボックスに「Certificate Manager」と入力し、Certificate Manager をクリックします。

証明書の管理画面が表示されます。

「証明書のリクエスト」をクリックします。

証明書のリクエスト画面が表示されます。

今回は、EC2 上に稼働させている Web サーバー向けに証明書を発行したいと思います。「パブリック証明書のリクエスト」を選択します。

画面下部の「署名書のリクエスト」をクリックして、次へ進みます。

対象となるドメイン名の指定です。

ドメイン名のところに、EC2 上で稼働させている Web サーバーで使用しているドメイン名を入力します。

画面下部の「次へ」をクリックして、次へ進みます。

証明書の確認方法の選択です。

今回は、自分が管理している Web サーバーで、DNS の方も管理していますので、「DNS の確証」を使います。

画面下部の「次へ」をクリックして、次へ進みます。

タグの設定です。

後から分かりやすい様に、名前を付けておきます。

最終確認です。

今まで設定した内容を確認し、間違いがなければ、画面下部の「確証とリクエスト」をクリックします。

証明書が発行されました。

「DNS の設定をファイルにエクスポート」をクリックし、ファイルをダウンロードしておきます。

画面下部の「続行」をクリックします。

証明書は発行されたのですが、確証状態のところが、「確証保留中」になっています。証明書はまだ使えない状態です。

先ほどダウンロードしたファイルの内容を、DNS (AWS ならRoute 53) 側に設定します。

しばらく時間がかかりますが、確証が完了すると、確証状態が「成功」に変わります。これで、証明書が使える状態になりました。

ちなみにこの記事を表示している Web サーバーも EC2 上にあり、Route 53 やACM を使用しています。

この教材を使って勉強してます。

AWS認定資格試験テキスト AWS認定ソリューションアーキテクト-アソシエイト

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト【電子書籍】[ 佐々木 拓郎 ]価格:2,618円
(2020/8/30 16:09時点)
感想(0件)

関連する記事:

最近の記事:

カテゴリー
2020年 AWS AWS Solutions Architect - Associate クラウド コンピューター 技術一般 認定資格

AWS を学ぶ(19)AWS の暗号化サービス

KMS と CloudHSM

機密性の高いデータを扱う際には、暗号化が必要となります。まず、鍵管理サービスです。AWS の鍵管理サービスは 2 種類あります。

  • KMS: Key Management Service
  • CloudHSM: Cloud Hardware Security Module

KMS は、AWS が管理するマネージドサービスです。

CloudHSM は、AWS 内に専用のハードウェアを用意し、これを利用して鍵管理するサービスです。

この2つのサービスの違いは、信頼の起点(Roots of Trust)です。ユーザー自身なのか、AWS に任せるのか、です。

KMS

KMS には、以下の 3 つの API が用意されています。

  • Encrypt: ユーザーデータ暗号化のための API で、4KB までの平文データをサポート
  • Decrypt: ユーザーデータ復号化のための API
  • GenerateDataKey: ユーザーデータの暗号化に利用するカスタマーデータキーを生成
マスターキーとデータキー

KMS では、2 つの鍵を管理しています。

  • マスターキー: Customer Master Key (CMK)
  • データキー: Customer Data Key (CDK)

CMK は、データキー (CDK) を暗号化するために使用される鍵です。ユーザーデータの暗号化には使用されません。

CDK は、ユーザーデータを暗号化するために使用される鍵です。通常は AWS で暗号化されて保存されいますので、ユーザーデータの暗号化や復号化を行う度に、CDK を復号化して使用します。

つまり、CDK でユーザーデータを暗号化し、CMK を使って、 CDK をさらに暗号化します。この手法は、エンベロープ暗号化と呼ばれています。

CloudHSM

CloudHSM は、専用のハードウェアを使用する為、初期コストも月次の固定費も必要となります。大規模なシステム向けや、特定の規制、法令に準拠したい場合に使用されます。

CloudHSM で、FIPS 140-2 のレベル 3 認証済みの HSM を使用して、暗号化キーを管理できます。

上記の様に、CMK とCDK があり、2 段階の鍵構造になっています。この理由は、セキュリティーの向上のためです。

データキーは、S3、EBS、Redshift など、暗号化の対象ごとに作成します。これにより、万が一、鍵の漏洩があった際にも、そのリスク範囲を限定することができます。

そして、データキーをマスターキーで暗号化することにより、実際の運用で使用する機会の多いデータを保護します。マスターキーを集中管理することにより、全体としてのセキュリティーを高めています

クライアントサイドとサーバーサイドの暗号化

暗号化は、クライアントサイドで行うのか、サーバーサイドで行うのかも、常用なポイントとなります。

クライアントサイドの暗号化

クライアントサイドの暗号化は、ユーザー側の処理で行います。AWS が提供するSDKを利用するケースが多いです。EC2やLambdaなどでプログラムで暗号化して、S3などにアップロードするというケースも、クライアントサイドの暗号化となります。

クライアントサイドの暗号化の利点は、暗号化れたデータが転送されますので、経路が暗号化されていなくても、ユーザーデータを保護できるという点です。

クライアント側暗号化には、AES 256 ビットが使用できます。

クライアント側のマスターキーと暗号化されていないデータが AWS に送信されることありません。暗号化キーを安全に管理することが重要です。キーを紛失した場合、データを復号することはできません。

AWS オフィシャルサイト

サーバサイドの暗号化

サーバーサイドの暗号化は、AWS内で行います。サーバーサイドの暗号化は限定されていて、S3などの一部のサービスのみで提供されています。

サーバー側の暗号化は、保管時のデータ暗号化に関するものです。  S3 は、ディスクに書き込まれるときにデータをオブジェクトレベルで暗号化し、ユーザーがデータにアクセスする時に復号します。

この教材を使って勉強してます。

AWS認定資格試験テキスト AWS認定ソリューションアーキテクト-アソシエイト

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト【電子書籍】[ 佐々木 拓郎 ]価格:2,618円
(2020/8/30 16:09時点)
感想(0件)

カテゴリー
2020年 AWS AWS Solutions Architect - Associate CDN キャッシュ クラウド コンピューター 技術一般 認定資格

AWS を学ぶ(18)CloudFront を使ってみる

この記事は、日本語で作成し、機械翻訳で外国語に訳しています。

AWS を学んでみる(8)CloudFront ってなんだろうで、CloudFront について調べてみましたが、今回は、CloudFront を実際に使ってみました。

今回の動作確認では、以下のようなイメージで、構成を作ってみます。

(1) の部分が、Web サーバーと ELB、(2) の部分が CloudFront です。

CloudFront を使ってみる

事前準備

まず、(1) の部分を作っていきます。

VPC やサブネットについては、AWS を学ぶ(1)VPC を理解するAWS を学ぶ(2)VPC を作ってみようで説明しています。

EC2 でのインスタンスの起動については、AWS を学ぶ(4)EC2 を理解するAWS を学ぶ(6)EC2 を使ってみようで説明しています。

EC2 上に、Web サーバーを起動させます。インターネットからアクセスできるように、パブリックサブネットに起動させて下さい。

Web サーバーのグローバルアドレスを確認し、ブラウザーに入力して下さい。

Web サーバーのコンテンツが表示されましたね。

次に、ELB を起動させます。

ELB の起動と設定については、AWS を学んでみる(9)ELB を使ってみようで説明しています。

今回は ALB を使ってみます。ターゲットを、ES2 上の Web サーバーで指定しておきます。

ターゲットのステータスが Healthy になりました。

ELB のDNS 名を確認し、それをブラウザーに入力してアクセスします。

Web サーバーのコンテンツが表示されましたね。ELB 経由で Web サーバーへのアクセスも成功です。

CloudFront の起動と設定

AWS 管理コンソールの検索テキストボックスに CloudFront と入力し、CloudFront を選択します。

CloudFront の管理コンソールが表示されます。

「Create Distribution」をクリックします。

今回試したいのは、Web サーバーのコンテンツキャッシュです。上の「Web」の方の「Get Started」をクリックします。

Create Distribution の画面が表示されます。

Origin Settings の中の「Origin Distribution Name」のテキストボックスをクリックし、プルダウンメニューを表示させます。

その中に、先ほどの事前準備で作成した ELB が表示されていますので、それを選択します。

これ以外の設定は、今回は特に変更しません。

画面下部の「Create Distribution」をクリックします。

CloudFront Distributions の画面に戻ります。

Statusのところが、「In Progress」になっているはずです。導入が完了するまでに、10 分くらいかかります。

Status が「Deployed」になりました。これで CloudFront の導入が完了です。

導入が完了した Distribution の「ID」をクリックして、詳細を表示させます。

「Domain Name」の箇所に表示されているのが、CloudFront を使う時のアクセス先になります。

CloudFront のドメイン名を、ブラウザーに入力してアクセスしてみます。

Web サーバーやELB経由の時と同じコンテンツが表示されましたね。

この教材を使って勉強してます。

AWS認定資格試験テキスト AWS認定ソリューションアーキテクト-アソシエイト

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト【電子書籍】[ 佐々木 拓郎 ]価格:2,618円
(2020/8/30 16:09時点)
感想(0件)

カテゴリー
2020年 AWS AWS Solutions Architect - Associate クラウド コンピューター 技術一般 認定資格

AWS を学ぶ(17)CloudWatch を使ってみる

このページは、日本語で作成し、機械翻訳で外国語に変換しています。

今回は、CloudWatch について学んでみます。

例えば、何らかのしきい値を超えたらアラートを出し、Eメールで通知するということは、運用上必要だと思います。

この機能を、CloudWatch は、簡単に提供してくれます。

実際に使ってみることが早いですので使ってみました。

CloudWatch を使ってみる

AWS 管理コンソールにログインします。

検索テキストボックスで、CloudWatch と入力すると、CloudWatch が見つかるので、それをクリックします。

CloudWatch の管理コンソールが表示されます。

画面右側のメニューから、「アラーム」をクリックします。

アラーム設定画面が表示されます。

画面右上の「アラームの作成」をクリックします。

メトリクスの設定画面が表示されます。

「メトリクスの選択」をクリックします。

EBS、EC2、S3 などの項目が表示されます。表示される項目は、実際に使っている環境で異なります。

今回は、EC2 インスタンスに対して、アラームを設定したいと思います。EC2 をクリックします。

「インスタンス別メトリクス」をクリックします。

さまざまなメトリクスが表示されます。

とりあえず、分かりやすく、CPU 使用率でアラートを設定してみましょう。

一覧の中から、「CPU Utilization」をクリックします。

対象となるインスタンス ID が表示されています。これは EC2 の仮想インスタンスのインスタンスIDです。EC2 の管理コンソールも同時に開いて確認しましょう。

私の場合、テスト向けのインスタンスである、TEST-amz-linux があります。これのインスタンス名とインスタンス ID が同じであるかを確認します。

「CPU Utilization」を選択すると、現在の対象インスタンスの CPU 使用率が表示されます。

メトリクスの条件と指定の画面が表示されます。

今回は、CPU 使用率をメトリクスとして使用します。そのメトリクスは、AWS が用意しているので、メトリクス名は、そのまま使います。

今回は、CPU 使用率が 70% を超えたらアラートメールを出すようにしようと思います。「しきい値の種類」は、静的にします。

「より大きい」を選択し、「よりも」の項目で「70」を入力します。

まだトピックがありませんので、「新しいトピック」を選択し、「通知を受け取るEメールエンドポイント」に、メールの送信先になるEメールアドレスを入力します。このEメールアドレスが、アラートメールの受け取り先です。

名前と説明の画面が表示されます。

アラームの名前とその説明を入力します。

「次へ」を押すと、設定が完了します。

アクションのところを見ると、まだ「保留中の確認」になってますね。

先ほどメールの送信先に設定したメールを確認してみましょう。AWS からメールが届いているはずです。

メールの本文中にある「Confirm Subscription」をクリックします。

以下のような画面が表示されるはずです。これで、サブスクリプションは完了です。これからアラートメールが飛んできます。

CloudWatch の管理画面に戻ると、先ほど保留中だったステータス項目が、「確認済み」に変わります。

設定は、これで完了です。

CloudWatch のアラートを確認してみる

では、実際にアラートを発生させてみましょう。

今回設定しているのは、「CPU の使用率が 70% を超えたら、Eメールでアラートを出す」です。

Linux の top コマンドで、現在の CPU 使用率を確認してみます。テスト機を使ってますので、現在の CPU 使用率は 0% です。

top

次に、Linux の yes コマンドを使って、CPU 使用率を上げてみたいと思います。

これは不思議なコマンドです。Null にリダイレクトし続けると、CPU 使用率がどんどん上がっていきます。

yes > /dev/null

これを 4つ か 5つ 繰り返すと、すぐに CPU 使用率が上がります。今回は、5つ 繰り返してみましょう。

yes > /dev/null &
yes > /dev/null &
yes > /dev/null &
yes > /dev/null &
yes > /dev/null &

すぐに CPU 使用率が 99% まで上昇しました。

しかし、CloudWatch の方は、5分間の平均値で表示しています。すぐには結果が反映されませんので、5分から10分くらい待ってみましょう。

CloudWatch 側でも、CPU 使用率の上昇がみられるようになりました。

アラートメールが飛んでいるはずです。

メールボックスを確認してみると、70% のアラートのメールが届いてますね。動作確認は成功です。

今回は、CPU 使用率でアラートメールを飛ばすように設定してみましたが、CloudWatchは、いろいろなメトリクスが用意されています。いろんなアラートを飛ばして、試してみて下さい。

この教材を使って勉強してます。

AWS認定資格試験テキスト AWS認定ソリューションアーキテクト-アソシエイト

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト【電子書籍】[ 佐々木 拓郎 ]価格:2,618円
(2020/8/30 16:09時点)
感想(0件)

カテゴリー
2020年 AWS AWS Solutions Architect - Associate クラウド コンピューター 技術一般 認定資格

AWSを学ぶ(16)IAMについて

AWS Identity and Access Management (IAM) は、AWS リソースへのアクセスを安全に管理するためのサービスです。

IAM は基本的な機能なのですが、非常に重要な機能です。AWS のアカウントを作成したばかりの状態ですと、Root ユーザーのみが作成され、そのユーザーでログインしています。

このRoot ユーザーですが、非常に権限のあるユーザーで、名前の通り、AWS 上のオペレーションを何でも行うことができます。

このアカウント情報が、仮に外部に漏れてしまうと、AWS アカウントが乗っ取られ、何でもできてしまうという危険があります。

これを避けるために、IAM ユーザーを作成し、そのユーザーを使って運用するというのが、ベストプラクティスとなります。

IAM の基本機能

IAM の設定項目として、以下の4つがあります。

IAM ポリシー: 何を許可し、何ができるのかを定義します。例えば、EC2の操作は閲覧と開始、起動のみ許可し、削除は許可しないなどです。

IAM ユーザー: ユーザー名のことです。

IAM グループ: 複数のユーザーをグループ化します。

IAM ロール: 何ができるかを定義するポリシーを指定し、サーバー(仮想インスタンス)に適用します。

これらの設定項目が、それぞれどの様なものなのか見ていきましょう。

IAM ユーザーとIAM ポリシーを作成します。

作成したポリシーを、権限内容に応じて、必要なIAM ユーザーに割り当てます。これで、IAM ユーザーに何ができるかの権限が割り当てられます。これをインラインポリシーと呼びます。

インラインポリシーでも良いのですが、IAM ユーザーの数が増えた場合はどうでしょうか。運用が煩雑になりますよね。権限の許可忘れや、意図しない権限を割り当ててしまったりして、事故に繋がるケースもあり得ます。

これを避けるために、IAM グループを利用します。IAM ポリシーは、IAMグループに割り当てます。そして、IAM ユーザーを、必要なIAM グループに所属させるのです。これにより、運用が楽になります。IAM ユーザーは、所属するグループを変更するだけで、権限内容も変更可能となります。

次に、IAM ロールです。

IAM ロールは、IAM ユーザーに割り当てるのではなく、サーバー(仮想インスタンス)に割り当てます。

IAM ポリシーで、何を許可するのかを定義し、そのIAM ポリシーをIAM ロールに割り当てます。そして、そのIAM ロールをサーバーに割り当てることで、サーバに権限を適用することができます。

IAM を使ってみよう

IAM ポリシーの作成

AWS の管理コンソールにログインし、検索テキストボックスにIAMと入力します。

IAM の管理コンソールに接続します。

左側のメニューから、「ポリシー」をクリックします。

ポリシーの一覧が表示されます。これらは、AWS が用意しているポリシーとなります。

自分で新規にポリシーを作成してみましょう。

「ポリシーのフィルター」をクリックし、表示されるメニューの中から「ユーザーによる管理」をクリックします。

「ポリシーの作成」をクリックします。

「ビジュアルエディタ」のタブの中に、メニューが表示されます。「サービス」をクリックします。

サービスの一覧が表示されます。非常にたくさんのサービスがありますので、検索を使って、使用したいサービスを選択していきます。

まず、EC2を設定してみましょう。検索エキストボックスに、「EC2」と入力します。

EC2関連のサービスのみが表示されますので、「EC2」をクリックします。

実行可能なアクションが表示されます。

リスト:参照系アクション

  • リスト: 表示系のアクション
  • 読み込み: 参照系のアクション
  • タグ付け: タグの追加、削除、編集アクション
  • 書き込み: 書き込み系のアクション
  • アクセス権限の管理: アクセス制御系のアクション

「リスト」をクリックして、表示系アクションの詳細を表示します。

アクションの詳細が表示されます。ここから、具体的に適用したいアクションを細かく選択できます。

今回は、リストは、全てのアクションを選択します。また、読み込みも全てのアクションを選択します。

次に、「書き込み」をクリックします。

書き込み系アクションの一覧が表示されます。今回は、書き込みに関しては、一部のアクションのみを許可してみたいと思います。

アクションはたくさんあるので、CTL+Fで検索すると早いです。

今回許可したいアクションは、EC2インスタンスの起動(StartInstance)と停止(StopInstance)です。それ以外の書き込み系アクションは許可しません。この2つのアクションだけを選択します。

書き込み系アクションで、2つのみが許可されてますね。

次に、アクションの対象の指定です。「リソース」の項目になります。

今回は、「全てのリソース」を選択し、EC2インスタンス全てに対して、上記アクションを適用します。

「リクエスト条件」では、MFA(多要素認証が必要)や、送信元IPアドレスを限定するなどが設定可能となります。

今回はこれらの機能は使用しません。指定せずに進めます。

EC2に対しての権限設定は完了しました。画面の上部に戻り、EC2の横の三角ボタンを押して、詳細画面を閉じます。

再び、サービスの検索に戻ります。

次に、RDSに対するアクションを指定していきます。

検索テキストに「RDS」と入力し、RDS関連のサービス一覧を表示させます。

「アクセスレベル」が表示されます。先ほどのEC2の時と同じ感じで、設定していきます。

表示系と読み込み系の権限は、全て与えます。

書き込み系の権限はですが、今回は何も与えません

次に、「リソース」の右側の三角ボタンをクリックします。

RDSサービスの全てに対して、指定したアクションを適用します。

これで、2つのサービスに対する権限が完成しました。

画面下部の「ポリシーの確認」をクリックします。

ポリシーの確認画面が表示されます。

今、作成したポリシーの名前を入力し、説明のテキストボックスに、そのポリシーの説明を入力します。

最後に、画面下部の「ポリシーの作成」をクリックします。

ポリシーが作成されました。

「ポリシーフィルター」から、実際に見てみましょう。

先ほど作成した、EC2とRDS向けのポリシーが見えますね。

IAM ユーザーの作成

次に、IAM ユーザーを作ってみましょう。

IAM 管理コンソールの左側メニューから、「ユーザー」をクリックします。

「ユーザーを追加」をクリックします。

まず、ユーザー名を入力します。

次に、「アクセスの種類」から、「AWSマネジメントコンソールへのアクセス」を選択します。

次に、「コンソールのパスワード」です。ここには、ログインの際に使用するパスワードを入力します。

最後に、「パスワードのリセットが必要」です。今回はこの機能は使用しませんので、チェックは入れません。

「次のステップ」をクリックします。

アクセス許可の設定画面が表示されます。

今回は、まずはインラインポリシー(IAM ユーザーに直接、IAM ポリシーを割り当てる)を試してみたいと思いますので、「既存のポリシーを直接アタッチ」を選択します。

ポリシーの一覧が表示されます。

「ポリシーのフィルタ」をクリックし、メニューから、「ユーザーによる管理」にチェックを入れます。

先ほど作成したポリシーが表示されますので、ポリシーの名前を選択します。

「次のステップ」をクリックします。

タグの追加画面が表示されます。

タグを入力しておきます。

「次のステップ」をクリックします。

最後に、画面下部の「ユーザーの作成」をクリックします。

ユーザーが作成されました。

これで、作成したユーザー「User-01」に対して、作成したIAM ポリシーが適用されました。

権限の確認

今回の手順では、ユーザーを作成し、そのユーザーに対して、自分で定義したポリシーを直接適用(インラインポリシー)しました。

次に、そのユーザーでログインして、想定通りの権限であるかを確認してみましょう。

IAM 管理コンソールの画面左側メニューから、「ダッシュボード」をクリックします。

「IAM ユーザーのサインインリンク」が表示され、その下にログインに使用するURLが表示されます。これをコピーします。

コピーしたURLをブラウザーに入力してアクセスします。

ログイン画面が表示されます。

作成したユーザー名、そのパスワード入力してログインします。

ログインすると、画面右上に、ログイン中のユーザー名が表示されます。「User-01」になってますね。

EC2の管理コンソールにアクセスします。

画面左側メニューの「インスタンス」をクリックして、インスタンスの管理画面にアクセスします。

テスト様のAmazon Linuxのインスタンスがあるので、これを使ってみます。

「開始」をクリックして、インスタンスを起動します。

インスタンスの起動が始まりました。成功ですね。今回適用しているポリシーでは、EC2の全てのインスタンスに対して、起動と停止は許可しています。

次に、インスタンスを終了してみましょう。このアクションは、ポリシーで許可されていないはずです。

終了保護されているので、終了ができないようです。

ならば、終了保護を解除してみましょう。

「アクション」から、「終了保護の変更」をクリックします。

「はい」をクリックして、終了保護を無効化します。

エラーとなり、終了保護の解除ができません。

EC2インスタンスに対して、終了の権限がないためですね。

ここで思いました。

Rootユーザーならば、終了保護を外すことができるので、これを外した後では、どの様になるのだろう?

早速、試してみましょう。Rootユーザーでログインして、先ほどのインスタンスの終了保護を外してみます。

Rootユーザーでログインしています。

「はい」をクリックし、終了保護を無効化します。

インスタンスの終了保護が無効化されましたので、先ほどのUser-01で、再度ログインします。

User-01でログインしました。再度、インスタンスの終了を行ってみます。

終了エラーとなり、終了させられません。

権限がないことが検証できましたね。

IAM グループの作成

次は、IAM グループを作成してみましょう。

前回までの手順では、IAM ユーザーに、IAM ポリシーを直接割り当てる、インラインポリシーで行いましたが、今回は、IAM グループを作成し、IAM ポリシーはグループに割り当て、IAM ユーザーを、そのグループに所属させるという方法を行います。

IAM の管理コンソールの画面左側メニューから、「グループ」をクリックします。

「新しいグループの作成」をクリックします。

グループ名の設定画面が表示されます。

グループ名を入力します。

「次のステップ」をクリックします。

ポリシーのアタッチ画面が表示されます。

「ポリシーフィルタ」から、「カスタマー管理ポリシー」を選択します。

ポシリーのアタッチ画面が表示されます。

ポリシー名のところに、先ほど作成したポリシーが表示されますので、適用したいポリシーを選択します。

確認画面が表示されますので、設定内容を確認します。

画面下部の「グループの作成」をクリックします。

グループが作成されました。

次に、作成したグループに、ユーザーを所属させてみます。

追加したいグループ名を選択し、「グループのアクション」から「グループにユーザーを追加」を選択します。

ユーザー名の一覧が表示されます。

追加したいユーザーを選択します。

画面下部の「ユーザーの追加」をクリックします。

グループ名の隣が、そのグループに所属しているユーザーの数になります。User-01を所属させましたので1になりましたね。

これで、IAM ポリシーをIAM グループに適用し、IAM ユーザーはグループに所属するという形ができました。

この教材を使って勉強してます。

AWS認定資格試験テキスト AWS認定ソリューションアーキテクト-アソシエイト

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト【電子書籍】[ 佐々木 拓郎 ]価格:2,618円
(2020/8/30 16:09時点)
感想(0件)