AWS再入門 AWS Trusted Advisor編

2015.12.21

はじめに

当エントリはDevelopers.IOで弊社AWSチームによる2015年アドベントカレンダー 『AWS サービス別 再入門アドベントカレンダー 2015』の21日目のエントリです。 昨日 20日目のエントリは平田『Machine Learning』でした。

このアドベントカレンダーの企画は、普段AWSサービスについて 最新のネタ・深い/細かいテーマを主に書き連ねてきたメンバーの手によって、 今一度初心に返って、基本的な部分を見つめ直してみよう、解説してみようという コンセプトが含まれています。 本日21日目のテーマは『AWS Trusted Advisor』です。

目次

AWS Trusted Advisorとは

AWS Trusted Advisorは、「コスト最適化」、「パフォーマンス」、「セキュリティ」、「フォールトトレーランス」の4つの観点から、利用者のAWS環境をAWSが自動で精査し、推奨設定のお知らせをしてくれる機能です。 推奨設定は、AWSに蓄積されたベストプラクティスに基くもので、それらをダッシュボードから一目で確認したり、内容をメールで受信することもできます(設定が必要)。AWSを利用する企業のインフラ管理や経理を担当する方には是非活用していただきたい機能です!

使ってみる

TrustedAdvisorは、AWSアカウントを開設した直後から監査が有効となります。 利用にあたって、特別に何か設定をする必要はありません。マネージメントコンソールにログインして<サービス>→<Trusted Advisor>をポチっとしましょう。

<ダッシュボード画面> 01_td

Trusted Advisor Dashboard

Trusted Advisorは前述の4つの分類に分けられた複数の監査項目があります。なお、利用しているサポートによって取得できる監査項目が変わります。

  • エンタープライズサポートではすべての項目が取得可能です。 <全項目取得時の表示> 02_td

  • 通常の無料サポートでは以下の4項目が取得可能です。全ての機能を使うには、アップグレードが必要ということになります。。

  • 「サービス制限」
  • 「ルートアカウントのMFA」
  • 「IAM の使用」
  • 「セキュリティグループ - 開かれたポート」 <4項目取得時の表示> 03_td

各監査項目チェックは3段階のステータスで状態を表します。ダッシュボード上で一目で判別がしやすいように色分けされています。

  • No problems detected【緑】 : 問題が検出されなかった09_td

  • Investigation recommended【黄】 : 調査が推奨される10_td

  • Action recommended【赤】 : 即時対応が推奨される11_td

  • Not Available【-】 : 非表示

05_td 、 06_td07_td08_td をクリックすることで各分類の詳細結果を確認することができます。 右のプルダウンから各状態を選択し、チェック結果をフォーカスして確認することができます。

<「コスト最適化」画面を表示してみる> 12_td

また、ダッシュボード画面の各分類05_td 、 06_td07_td08_td の下にある、09_td10_td11_tdを直接クリックすると、「分類とステータス」でフォーカスされた状態で表示ができます。

メール通知

通知をオンにする設定が必要です。 AWSアカウントIDに登録している3つメールアドレスを通知先として設定可能です。登録はあらかじめ行っておきましょう。 「請求(に関する連絡先)」「オペレーション」「セキュリティ」のチェックボックスにチェックを入れましょう。必要な担当者にだけ届けることができます。

<設定例> 16-2_td

「更新」ボタンを忘れずに。 また、通知頻度は1週間に1度です。以下のような通知が受けられます。 <例: iphoneで。。> 14_td

Excel出力

ダッシュボード画面右上の15_td を押すことで、直近の監査結果をExcelで出力できます。 項目ごとにタブが作成され、1ファイルでDLできます。

評価基準一覧<2015年12月時点>

評価基準と通知カラーを確認してみましょう。

05_tdCost Optimizing【コスト最適化】7項目

EIP/EC2/EBS/ELB関連

  • 関連付けられていない Elastic IP Address 黄色: 稼働中の Amazon EC2 インスタンスに関連付けられていない Elastic IP Address(EIP)が存在する。  → 稼働中のインスタンスと EIP を関連付けるか、関連付けられていない EIP を解放する。
  • EC2 リザーブドインスタンスの最適化 黄色: リザーブドインスタンス利用により、少なくともお客様のEC2使用料金の10%を節約することが可能な状態である。  → リザーブドインスタンス購入などを検討する。 ※ 支払いアカウントでのみ参照可能。一括請求に連結された各アカウントでは利用できません。
  • 使用率の低いAmazon EC2 Instances 黄色:過去 14日間で最低 4日は CPU使用率の平均値が 10%以下、かつ Network I/Oが 5MB以下であったインスタンスが存在する。  → 使用率の低いインスタンスを停止または終了することを検討する。もしくは Auto Scaling を使用しインスタンス数を調整する。
  • 利用頻度の低いAmazon EBSボリューム 黄色: 現在アタッチされていないか、過去7日間に1日の最大IOPSが1に満たない EBS ボリュームが存在する。  → スナップショットを作成し、ボリュームを削除することを検討する。
  • アイドル状態の Load Balancer 黄色: ヘルスチェックに成功するバックエンドインスタンスを持たないロードバランサーが存在する。  → インスタンスを登録するか、ロードバランサーを削除することを検討する。 黄色: 稼働中のバックエンドインスタンスを持たないロードバランサーが存在する。  → インスタンスを登録するか、ロードバランサーを削除することを検討する。 黄色: 過去7日間で1日毎のリクエスト数が100に満たないロードバランサーが存在する。  → ロードバランサーのリクエスト数が少ない場合、ロードバランサーを削除することを検討する。

RDS関連

  • Amazon RDSアイドル状態のDBインスタンス 黄色:アクティブな DBインスタンスに過去 7 日間コネクションが発生していない。  → アイドル状態の DB インスタンスのスナップショットを作成し、アイドル状態の DB インスタンスを削除することを検討する。

Route53関連

  • Amazon Route 53 レイテンシーリソースレコードセット 黄色: ドメイン名が一つのレイテンシーリソースレコードセットしか持っていない。  → リソースを 1 個のリージョンにしか持たない場合は、リソースを複数のリージョンで作成し、各リージョンに対するレイテンシーリソースレコードセットを作成する。複数のリージョンを使用したくない場合は、通常のリソースレコードセットを使用する。

06_tdPerformance【パフォーマンス】11項目

VPC/EIP/EC2/EBS/ELB関連

  • 使用率の高いAmazon EC2インスタンス 黄色: 過去 14日間のうち最低 4日間は、CPU使用率の平均値が 90%以上だったインスタンスが存在する。  → インスタンスを増やすことを検討する。
  • EC2 インスタンスセキュリティグループルールの増大 黄色: Amazon EC2-VPC インスタンスに 50以上のセキュリティグループのルールがある。  → 不必要なルールや重複しているルールを消去し、インスタンスに関連したルール数を減らす。 黄色: Amazon EC2-Classic インスタンスに 100以上のセキュリティグループのルールがある。  → 不必要なルールや重複しているルールを消去し、インスタンスに関連したルール数を減らす。
  • EC2 セキュリティグループルールの増大 黄色: Amazon EC2-VPC セキュリティグループに 50以上のルールがある。  → 不必要なルールや重複しているルールを消去し、インスタンスに関連したルール数を減らす。 黄色: Amazon EC2-Classic セキュリティグループに 100以上のルールがある。  → 不必要なルールや重複しているルールを消去し、インスタンスに関連したルール数を減らす。
  • Amazon EC2 から EBS スループット最適化 黄色: アタッチしているEBSボリュームの前日(UTC)合計スループット(Mbyte/sec) がインスタンスとEBSボリューム間のパブリッシュ済みスループットの95%以上である期間が、測定した期間内の 50%を超えていた。  → EBSボリュームの最大スループットをアタッチされているECインスタンスの最大スループットと比較し、ボリュームをより大きなEBSへのスループットをサポートするインスタンスにアタッチすることを検討する。
  • Amazon EBS プロビジョンド IOPS ボリューム アタッチ設定 黄色: EBS に最適化可能な Amazon EC2 インスタンスが、プロビジョンド IOPS (SSD) ボリュームにアタッチされているものの、EBS 用に最適化されていない。  → EBS 最適化される新しいインスタンスを作成し、そちらにアタッチすることを検討する。
  • 利用率が高すぎる Amazon EBS マグネティックボリューム 黄色: Amazon EBSマグネティックボリュームが、EBS 最適化設定が可能なインスタンスにアタッチされていであるか、もしくはクラスターコンピュートネットワークの一部で日時の中央値が 95IPOPS を超え、かつ過去 14日間のうち少なくとも 7日間で中央値の変動化が中央値の 10%未満である。  → 一貫して高い I/O 性能が必要な場合はプロビジョンド IOPS(SSD)、局所的に高い I/O 性能が必要な場合は汎用(SSD)の利用を検討する。

Route53関連

  • Amazon Route 53 エイリアスリソースのレコードセット 黄色: Amazon S3ウェブサイトが CNAMEで指定されているリソースレコードセットがある。  → CNAME リソースレコードセットをエイリアスレコードセットと入れ替える。 黄色: Amazon CloudFront ディストリビューションが CNAME で指定されているリソースレコードセットがある。  → CNAME リソースレコードセットをエイリアスレコードセットと入れ替える。 黄色: Elastic Load Balancing ロードバランサーが CNAME で指定されているリソースレコードセットがある。  → CNAME リソースレコードセットをエイリアスレコードセットと入れ替える。

CloudFront関連

  • CloudFront ヘッダー転送とキャッシュヒット率 黄色: CloudFrontがオリジンに転送する1つ以上のリクエストヘッダーが、キャッシュヒット率を大幅に低下させる可能性がある。  → そのリクエストヘッダーによるメリットがキャッシュヒット率に対する悪影響を補えるほど大きなものかどうか確認し、そのヘッダーの値にかかわらずオリジンからは同じオブジェクトが返されるのであれば、そのヘッダーをオリジンに転送する設定を外す。
  • CloudFront 代替ドメイン名 黄色: CloudFrontディストリビューションに代替ドメイン名が含まれるが、DNSクエリをその CloudFrontディストリビューションにルーティングするように設定されていない。  → DNSクエリをその CloudFrontディストリビューションにルーティングするよう DNS設定を更新する。 黄色: CloudFront ディストリビューションはその設定の代替ドメイン名を、DNS レコードの取得中にタイムアウト、あるいはその他の問題で調べることができない。  → DNSクエリをその CloudFrontディストリビューションにルーティングするよう DNS 設定を更新する。
  • コンテンツ配信の最適化 (CloudFront) 黄色: 対象のバケットにおいて 30日間の転送データ量は前回確認時点より 25倍以上となっている。  → CloudFrontのパフォーマンス改善について検討する。 赤色: 対象のバケットにおいて 30日間の転送データ量は前回確認時点より 25倍以上となっています。且つ、そのデータ転送量は 10TB以上となっている。  → CloudFrontのパフォーマンス改善について検討する。

その他

  • サービス上限 黄色: サービス上限に対して 80%を超えているものが存在する。  → 上限以上利用する場合は、サポートセンターでケースを開いて上限緩和申請をする。

07_tdSecurity【セキュリティ】14項目

VPC/EIP/EC2/EBS/ELB関連

  • セキュリティグループ - 無制限アクセス 赤色: セキュリティグループルールでサフィックスとして/0が指定されたソースIPアドレスが設定されている。  → 必要とするIPアドレスだけにアクセスするように制限する。
  • セキュリティグループ - 開かれたポート 緑色: ポート80, 25, 443, 465へのアクセスが無制限となっている。 赤色: ポート20, 21, 1433, 1434, 3306, 3389, 4333, 5432, 5500へのアクセスが無制限となっている。 黄色: 上記以外のポートへのアクセスは無制限となっている。  → 必要とするIPアドレスだけにアクセス許可するように制限する。
  • ELB セキュリティグループ 黄色: ロードバランサーに関連付けられている Amazon VPCセキュリティグループのインバウンドルールで、ロードバランサーのリスナー設定で定義されていないポートへのアクセスが許可されている。 赤色: ロードバランサーに関連付けられているセキュリティグループが存在しない。  → ロードバランサーのリスナー設定で定義されているポートとプロトコルのみにアクセスを制限するようにセキュリティグループを設定する。
  • Amazon RDS セキュリティグループアクセスのリスク 黄色: DBセキュリティグループは、 ポート番号 20、21、22、1433、1434、3306、3389、4333、5432、5500 に対するグローバルなアクセス許可されている。 黄色: 1個以上の IPアドレスからのアクセスを許可している。 (CIDRプレフィックス長が /0 もしくは /32 ではない) 赤色: DBセキュリティグループルールはグローバルアクセスを許可している。(CIDRプレフィックス長が /0)  → セキュリティグループルールを確認し、IPアドレスや IPレンジの権限を制限する。
  • ELB リスナーのセキュリティ 黄色: ロードバランサーのリスナーが安全なプロトコル(HTTPS または SSL)を使用していない。  → フロントエンド接続に HTTPSプロトコルまたは SSLプロトコルを使用する。 黄色: ロードバランサーのリスナーが古い定義済み SSL セキュリティポリシーを使用している。  → ロードバランサーで使用している定義済み SSLセキュリティポリシーを最新バージョンにアップグレードする。 黄色: ロードバランサーのリスナーが推奨されていない暗号またはプロトコルを使用している。  → 推奨される暗号とプロトコルのみを使用する。 赤色: ロードバランサーのリスナーが安全でない暗号またはプロトコルを使用している。  → 推奨される暗号とプロトコルのみを使用する。

Route 53関連

  • Amazon Route 53 MX リソースレコードセットと Sender Policy Framework 黄色: MXリソースレコードセットにおいて、対応する SPF 設定を含む TXT リソースレコードセットが登録されていない。  → それぞれの MX リソースレコードセットについて、 SPF 設定を含む TXT リソースレコードセットを登録する。

IAM関連

  • IAM の使用 黄色: このアカウントでは IAM ユーザーが作成されていない。  → アカウントで1つ以上のIAMユーザーやグループを作成する。
  • IAM パスワードポリシー 黄色: パスワードポリシーは有効化されているが、少なくとも1つのパスワード構成条件が有効化されていない。  → 有効化されていないパスワード構成条件がある場合は、有効化を検討する。 赤色: 有効化されているパスワードポリシーがない。  → 有効化されているパスワードポリシーが無い場合は、パスワードポリシーを作成し設定する。
  • IAM アクセスキーローテーション 緑色: アクセスキーはアクティブで、かつ過去 90日間にローテーションされている。 黄色: アクセスキーはアクティブで、かつ過去 2年間にローテーションされているが、90日以内にはローテンションされていない。 赤色: アクセスキーはアクティブだが、過去 2年間ローテンションされていない。  → 定期的にアクセスキーをローテーションする。

S3関連

  • Amazon S3 バケット許可 黄色: バケットがすべての人が参照できる設定となっている。 赤色: バケットがすべての人がアップロードや削除できる設定となっている。  → 不要の場合、所有者や特定のユーザーがアクセスできる制限に、バケット許可を変更する。

CloudFront関連

  • IAM 証明書ストアの CloudFront 独自 SSL 証明書 黄色: 独自SSL証明書の期限が今後 7日以内に切れる。  → 期限切れ証明書または期限切れ間近の証明書を更新する。 黄色: 独自SSL証明書が SHA-1ハッシュアルゴリズムによって暗号化されている。  → SHA-1 ハッシュアルゴリズムによって暗号化された証明書を、SHA-256 ハッシュアルゴリズムによって暗号化された証明書に置き替える。 黄色: ディストリビューションの代替ドメイン名の 1つ以上が、独自SSL証明書の Common Nameフィールドまたは Subject Alternative Namesフィールドのどちらにも存在しない。  → 証明書を、該当する値が Common Name フィールドまたは Subject Alternative Domain Names フィールドに含まれている証明書に置き換える。 赤色: 独自SSL証明書の期限が切れている。  → 期限切れ証明書または期限切れ間近の証明書を更新する。
  • オリジンサーバーの CloudFront SSL 証明書 黄色: オリジンの SSL証明書の期限が今後 7日以内に切れる。  → オリジンの証明書の期限が切れている、または期限切れが近い場合、更新する。 黄色: オリジンの SSL証明書が SHA-1ハッシュアルゴリズムによって暗号化されている。  → SHA-1ハッシュアルゴリズムによって暗号化された証明書を、SHA-256ハッシュアルゴリズムによって暗号化された証明書に置き替える。 黄色: オリジンの SSL証明書が配置できない。接続タイムアウトで失敗した、CNAMEとホストネームが整合しない、あるいは他の HTTP接続の問題の可能性がある。  → 証明書が存在しない場合、証明書を追加する。 赤色: オリジンの SSL証明書の期限が切れている、または証明書が見つからない。  → 証明書が存在しない場合、証明書を追加する。

CloudTrail関連

  • AWS CloudTrail ロギング 黄色: CloudTrailは、特定の証跡にに対するログの取得に失敗した。  → ログ保管先のバケットが存在しているか、CloudTrailの書き込みに必要な権限がバケットに設定されているかを確認する。 赤色: 証跡は特定のリージョンで有効にされていない、またはロギングが証跡に対して無効になっている。  → CloudTrail のAPI呼出し履歴のログを開始する。

その他

  • ルートアカウントのMFA 黄色: このルートアカウントでは、MFAが有効になっていない。  → ルートアカウントにログインして、MFAを有効にする。

08_tdFault Tolerance【フォールトトレランス(耐障害性)】15項目

VPC/EIP/EC2/EBS/ELB関連

  • Amazon EC2 アベイラビリティゾーンのバランス 黄色: リージョン内の複数のアベイラビリティゾーンにインスタンスが存在するが、配置が均等ではない。利用中のアベイラビリティゾーンにおいて、最も多いインタンス数と最も少ないインスタンス数の差が 20%以上ある。 赤色: 単一のアベイラビリティゾーンにのみインスタンスが存在している。  → 複数のアベイラビリティゾーンで、Amazon EC2インスタンスを均等に配置する。
  • Amazon EBS スナップショット 黄色: 最後のスナップショット取得から7~30日経過している。 赤色: 最後のスナップショット取得から30日経過している。 赤色: このボリュームにはスナップショットがない。  → 週一回もしくは月一回でボリュームのスナップショットを作成する。
  • Load Balancerの最適化 黄色: ロードバランサーが単一のアベイラビリティゾーンで有効となっている。  → ロードバランサーに少なくとも2つのアベイラビリティゾーンにある稼働中かつ正常なインスタンスが登録されているように設定する。 黄色: ロードバランサーが稼働中のインスタンスの無いアベイラビリティゾーンで有効となっている。  → すべてのアベイラビリティゾーンが必要かどうかを確認し、不要なアベイラビリティゾーンを除いた後、 残りのアベイラビリティゾーン間でインスタンスを均等に配置する。 黄色: ロードバランサーに登録された Amazon EC2インスタンスがアベイラビリティゾーン間で均等に配置されていない。インスタンス個数が最も多いAZと最も少ないAZ において20%以上の違いがある。  → すべてのアベイラビリティゾーンが必要かどうかを確認し、不要なアベイラビリティゾーンを除いた後、 残りのアベイラビリティゾーン間でインスタンスを均等に配置する。
  • ELB クロスゾーン負荷分散 黄色: ロードバランサーでクロスゾーン負荷分散が無効になっている。  → ロードバランサーに登録されている Amazon EC2インスタンスが複数のアベイラビリティーゾーンで起動されていることを確認してから、ロードバランサーのクロスゾーン負荷分散を有効にする。
  • ELB Connection Draining 黄色: ロードバランサーで接続のストリーミングが無効になっている。  → ロードバランサーで接続のストリーミングを有効にする。
  • Auto Scaling Group ヘルスチェック 黄色: Auto Scalingグループはロードバランサーに紐付いているが、Elastic Load Balancing のヘルスチェックは無効となっている。  → Auto Scaling グループに Elastic Load Balancing ヘルスチェックを追加する。 黄色: Auto Scalingグループはロードバランサーに紐付いていないが、Elastic Load Balancing のヘルスチェックは有効となっている。  → Auto Scaling グループをロードバランサーに関連付ける。
  • Auto Scaling グループリソース 赤色: 削除されたロードバランサーに結びついた Auto Scalingグループが存在する。  → 新しいロードバランサーを作成した上、新しいロードバランサーに関連付けしたAuto Scalingグループを作成するか、もしくはロードバランサー無しで新しいAuto Scalingグループを作成する。 赤色: 削除された Amazon Machine Image (AMI) に結びついた起動設定が存在する。  → 有効な AMI を参照するため新しい起動設定を作成し、Auto Scaling グループと関連付ける。
  • VPNトンネルの冗長性 黄色: アクティブなトンネルが 1つのみとなっている(※ 機器によっては問題ありません)  → VPN 接続で 2 個のトンネルが設定されていることを確認し、機器が対応している場合には、両方のトンネルがアクティブであることを確認する。 黄色: アクティブなトンネルが存在しない。  → VPN 接続で 2 個のトンネルが設定されていることを確認し、機器が対応している場合には、両方のトンネルがアクティブであることを確認する。

RDS関連

  • Amazon RDS Multi-AZ 黄色: DBインスタンスは、単一のアベイラビリティーゾーンにデプロイされている。  → アプリケーションが高い可用性を必要とする場合、DBインスタンスの Multi-AZ配備を有効するように変更する。
  • Amazon RDS バックアップ 赤色: DBインスタンスのバックアップ期間が 0日で設定されている。  → アプリケーションの要求に対して適切に、DBインスタンス自動バックアップの保存期間を 1日から 35日に設定する。

Route 53関連

  • Amazon Route 53 のネームサーバー権限委譲 黄色: Route 53 の委託セット内の4個すべてのネームサーバーがレジストラで設定されてないホストゾーンとなっている。  → レジストラか現在ご利用の DNS サービスのプロバイダにてお客様ドメインの設定に Route 53 委託セット内の4個すべてネームサーバーを含めるようネームサーバーレコードを追加もしくは更新する。
  • Amazon Route 53 のフェイルオーバーリソースレコードセット 黄色: プライマリリソースレコードセットと対になるセカンダリリソースレコードセットが設定されていない。  → フェイルオーバーリソースレコードを正しく設定する。 黄色: セカンダリリソースレコードセットと対になるプライマリリソースレコードセットが設定されていない。  → フェイルオーバーリソースレコードを正しく設定する。 黄色: プライマリ及びセカンダリソースレコードセットが同じヘルスチェックに紐付けられている。  → それぞれのリソースレコードセットに対して別のヘルスチェックを設定し直す。
  • Amazon Route 53 削除されたヘルスチェック 黄色: 既に削除されたヘルスチェックに適用されたままのリソースレコードセットが存在する。  → 新規にヘルスチェックを作成して該当リソースレコードセットに適用する。
  • Amazon Route 53 の高TTL リソースレコードセット 黄色: ルーティングポリシーが Failover に設定されており、かつ TTL が60秒より大きいリソースレコードセットが存在する。 黄色: ヘルスチェックが設定されており、かつ TTL が60秒より大きいリソースレコードセットが存在する。  → 60秒のTTLを設定する。

S3関連

  • Amazon S3 バケットロギング 黄色: バケットのサーバーアクセスログが有効になっていない。  → バケットでバケットログを有効にする。 赤色: ターゲットのバケットが存在しない。  → 存在しているバケットをターゲットとして選択するか、新しいバケットを作成してそれを選択する。 赤色: ターゲットのバケットと元のバケットの所有者がことなる。  → ターゲットのバケットを元のバケットと同じ所有者に変更する。 赤色: ターゲットのバケットへの書き込み許可がない。  → アップロード/削除許可をログ配信グループに付与する。

・・・長かったですが、以上です。それぞれで推奨される対応も入れてみました。お使いのAWSアカウント上では、すべてグリーンにする様にしましょう!

合わせて読みたい

公式情報

Developers.IO関連エントリ

さいごに

以上、 『AWS サービス別 再入門アドベントカレンダー 2015』の21日目のエントリ『AWS Trusted Advisor編』でした。 なお、クラスメソッドメンバーズでは、全監査情報を利用することができます。お問い合わせはコチラ

明日(12/22)は石川の「IAM」の予定です!どうぞお楽しみに〜