Amazon Web Services ブログ

AWS ConfigでSAPシステムを評価する – パート1

はじめに

SAP on AWSをご利用のお客様は、SAPシステムの日常運用を強化し単純化できる幅広い追加サービスを利用可能です。よく見かける面倒なタスクの1つとして、SAPシステムがベストプラクティスに従って構成されているかどうかということや、ベンダーサポートの要件を満たしているか、内部監査要件を満たしているかどうか、という点があります。

このブログシリーズでは、AWS Configがお客様のランドスケープ内の全てのSAPシステムのコンプライアンスを継続的に監査および評価するプロセスを簡素化する方法についてご説明します。また、Amazon Event BridgeおよびAmazon Simple Notification Serviceを使用して、リソースが非準拠として識別された場合にEメール通知を有効にする追加手順をお届けします。

シリーズのパート1では、AWS Configマネージドルールを活用して、SAPランドスケープのインフラストラクチャ関連のコンポーネントを自動的に監査および評価するソリューションを作成します。

シリーズのパート2では、AWS ConfigカスタムルールとAWS Lambdaを使用して、SAPアプリケーション設定関連のコンポーネントを自動的に監査および評価する包括的なソリューションを提供します。

開始する前に、目的のサービスとマネージドルールが対象のリージョン内に存在することを確認する必要があります。

ソリューション概要 パート1: AWS Configマネージドルール

AWS Configは定義したルールに対してAWSリソースの設定の変更を自動的に評価します。変更が非準拠として識別された場合、アラートとして通知することが出来ます。

 

AWS Configには160を超えるマネージドルールが用意されています。これらはAWSによって作成されたルールです。SAPシステムがAWS上で適切に構築されていることを確認するために、SAPワークロードの最も一般的なルールのリストを以下に示します。

 

SAPワークロード向けの一般的なマネージドルールは次の2つです。

  • Desired Instance Type — AWSではSAPノート1656099 — SAP Applications on AWS: Supported DB/OS and AWS EC2 productsに従ってSAPワークロードの実行が認定されているインスタンスタイプを提供しています。
  • Instance Detailed MonitoringSAPノート1656250 — SAP on AWS: Support prerequisitesに記載されているように、SAPによる完全なサポートを受けるには、詳細モニタリングが必要です。

セキュリティコンプライアンスとコスト削減のためにお客様に共通するマネージドルールは次のとおりです。

  • EC2 Volume in Use Check — EC2インスタンスの終了後にEBSボリュームが残っていないことを検証します。
  • EC2 Volume Encryption Check — EC2インスタンスにアタッチされたEBSボリュームが暗号化されていることを検証します。
  • EC2 Public IP — EC2インスタンスにパブリックIPアドレスが割り当てられていないことを検証します。
  • EBS Encryption by Default — 全てのEBSボリュームが暗号化されているかどうかを検証します。
  • EFS Encrypted Check — 全てのEFS構造が暗号化されているかどうかを検証します。
  • S3 Public Read — S3バケットがパブリック読み取りアクセスに使用できないことを検証します。
  • S3 Public Write — S3バケットがパブリックに書き込みアクセスを許可していないことを検証します。
  • S3 Server Side Encrypt — S3バケットの暗号化が有効になっていることを検証します。
  • Restricted SSH — 使用中のセキュリティグループが、制限の無いSSHトラフィックを許可しないことを検証します。
  • EC2 Security Group Attached to ENI — セキュリティグループがEC2インスタンスまたElastic Network Interfaceにアタッチされていることを検証します。
  • Cloudtrail Enabled — AWSアカウントでAWS CloudTrailが有効になっているかどうかをチェックします。

設定: AWS Configルール

それでは例として「desired-instance-type」の評価設定手順について詳しく説明しましょう。この設定では、タグを活用して、SAPワークロードに関連付けられたEC2インスタンスのみが検証されるようにします。推奨事項については、「SAP on AWSのタグ付けにおける推奨」を参照してください。

前提条件

  • SAPインスタンスは、Key: Application、Value: SAPでタグ付け済み
  • AWS Configの基本設定が有効
  • AWS Configは、SNSトピックのパブリッシュを許可するIAMロールを使用
  • SNSトピックとEメール購読が作成済み「Amazon SNS の開始方法

ステップ1: AWS Configコンソールで、「Rule」、「Add rule」の順に選択します。

 

ステップ2: テキストボックスに「Instance type」を入力し、カード「desired-instance-type」を選択します。

 

ステップ3: セクションTriggerまでスクロールダウンして「Tags」を選択し、「Resources by tag」にKey/Valueのペアを入力します。

 

ステップ4: セクションRule parametersにスクロールし、「Value」に検証する有効なインスタンスタイプをカンマ区切りで入力します。

 

ステップ5: 構成が更新され検証されたら、一番下までスクロールして「Save」を選択します。

 

設定:Amazon EventBridge

次に、コンプライアンス通知を生成するようにAmazon EventBridgeの通知を設定します。

 

ステップ1: Amazon EventBridgeコンソールから、「Create rule」を選択します。

 

ステップ2: 「Name」と「Description」に適切な値を入力します。「Event matching pattern」で「 Custom pattern」を選択します。サンプルパターンを入力し「Save」を選択します。

{
  "source": [
    "aws.config"
  ],
  "detail-type": [
    "Config Rules Compliance Change"
  ],
  "detail": {
    "messageType": [
      "ComplianceChangeNotification"
    ],
    "newEvaluationResult": {
      "complianceType": [
        "NON_COMPLIANT"
      ]
    }
  }
}

ステップ3: セクションSelect targetsにスクロールます。「ターゲット」配下で「SNS topic」を選択します。「Topic」配下で目的のSNS topicを選択します。「Input transformer」を選択します。一つ目のボックスに以下の値を入力します。

{"awsAccountId":"$.detail.awsAccountId","awsRegion":"$.detail.awsRegion","compliance":"$.detail.newEvaluationResult.complianceType","resourceId":"$.detail.resourceId","resourceType":"$.detail.resourceType","rule":"$.detail.configRuleName","time":"$.detail.newEvaluationResult.resultRecordedTime"}

ステップ4: 次のサンプルを2番目のボックスに入力します。

"On <time> AWS Config rule <rule> evaluated the <resourceType> with Id <resourceId> in the account <awsAccountId> region <awsRegion> as <compliance>. For more details open the AWS Config console at https://<awsRegion>.console.aws.amazon.com/config/home?awsc-custsat-override=promptUser&region=<awsRegion>#/dashboard"

以下にメール通知の例を示します。

 

コストシナリオ

AWS Config:

AWSアカウントに記録された設定項目ごとに、AWSリージョンごとに課金されます。特定の月に米国東部(バージニア北部)で次の利用があるとします。

記録された設定項目の数 想定コスト(月)
10,000 10,000 * .003 = $30.00

注:設定項目はアカウントに存在するサポートされているAWSリソースの様々な属性の、その瞬間の状態を表します。構成項目のコンポーネントには、メタデータ、属性、関係、現在の構成、および関連イベントが含まれます。AWS Configは、記録しているリソースタイプへの変更を検出するたびに設定項目を作成します。たとえばAWS ConfigがAmazon S3バケットに記録している場合、バケットに対する作成、更新、または削除が行われるたびにAWS Configによって設定項目が作成されます。詳細については、「AWS Config Concepts」ページを参照してください。

 

AWS Configルール:

記録されたAWS Configルールの評価数に基づいて課金されます。ソリューション「desired instance type」を設定し、米国東部(バージニア北部)で1か月に1回インスタンスタイプを変更したと仮定すると、想定コストは次のようになります。

SAP ルール数(E) (R)評価数 想定コスト(月)
インスタンス数 (I)
50 1 I*R*Changes/Mth E*.001
50*1*1 = 50 50*.001 = $.050

Amazon EventBridge:
イベントバスに公開されているイベントに対して課金されます。上記の各評価の結果がパブリッシュされたイベントが64KB以下になると仮定すると、想定コストは次のようになります。

公開済みイベントの数(PE) 想定コスト
50 50*$1.00/100,000,000=$1.00

Amazon SNS:
公開した通知の数に対して課金されます。上記の各公開済みイベントがSNSメッセージになると仮定すると、想定コストは次のようになります。

SNSメッセージ数 想定コスト
50 50*$2.00/100,000=$2.00

Amazon S3:
また、Amazon S3バケットは、AWS Configサービスとその設定項目に関連する設定とコンプライアンス履歴を保存するために使用されます。

S3標準ストレージ(S)
GB/月
PUTリクエスト(P) GETリクエスト(G) 評価数(E) 想定コスト
1 15000 15000 (0.023*S)+(P*0.000005)+(G*0.0000004) $0.11

コストサマリ:

前述の前提に基づき、インスタンスタイプが要件に準拠していることを確認するには、月額約33.16ドルの費用がかかります。

AWSは定期的にコストを最適化するため、上記の各サービスについて以下の料金詳細をご参照下さい。

AWS Config料金の詳細については、AWS Configの料金ページをご覧ください。

Amazon EventBridgeの料金の詳細は、Amazon EventBridgeの料金ページでご覧ください。

Amazon SNS料金の詳細については、Amazon SNSの料金ページをご覧ください。

Amazon S3料金の詳細については、Amazon S3の料金ページをご覧ください。

クリーンアップ

エンド向けソリューションで不要なAWS Configルールを作成した場合は、削除することを忘れないようにしてください。

 

結論

本ブログでは、AWSマネージドルールを使用したAWS Configの利用ついて説明しました。構成が行われると評価の結果がダッシュボードビューに表示されます。この例では非準拠と見なされるEC2インスタンスが一つあることがわかります。もしかすると数百単位で検知されることもあるかもしれません。非準拠のリソースを迅速に特定することで、コンプライアンスを回復するために必要な手順を実行することができるようになります。

 

ルール名のリンクをたどり、タイムラインを確認することで、コンプライアンス問題に関する詳細な情報を得ることができます。

パート2では、AWS ConfigカスタムルールとAWS Lambdaを活用して、SAPアプリケーションレベルの設定ファイルを監査する方法について説明します。SAPシステムのオプションについてご質問がある場合、または詳細については、sap-on-aws@amazon.comまでお問い合わせください。またはaws.com/jp/sap_japanをご覧ください。今すぐAWSでの構築をお楽しみください!

翻訳はPartner SA 松本が担当しました。原文はこちらです。