クラウドセキュリティエンジニアブログ

ニューリジェンセキュリティのクラウドセキュリティエンジニアチームが AWSなどのクラウドセキュリティについて気になることや調べたことを書くブログ

検証速報!AWS re:Invent 2022で発表された新機能をご紹介 ~Cloud OperationとSecurity~

検証速報!AWS re:Invent 2022で発表された新機能をご紹介 ~Cloud OperationとSecurity~

こんにちは、クラウドセキュリティアーキテクトの大島悠司です。

先日、ラスベガスでAWS re:Invent 2022が開催されました。
本イベントはAWS最大規模の学習型カンファレンスで、今年も100を超えるサービスアップデートがありました。

私は現地には行っていませんが、会期中は最新情報を追いながら検証をしていたので、今回は「Cloud OperationとSecurity」から4つの検証結果をご紹介させていただきます。

以下が「Cloud OperationとSecurity」に関するアップデートであり、「★」印に関して検証内容をご紹介します。

Cloud Operations

  1. Amazon CloudWatch Internet Monitorを発表
  2. Amazon CloudWatch Logsのデータ保護機能を発表 ★
  3. Amazon CloudWatchでアカウント横断の監視が可能に
  4. AWS Config Rules Proactive Complianceを発表
  5. AWS Organizationsで管理者権限の委任が可能に ★
  6. AWS Control Towerのコントロール管理機能を強化
  7. AWS Control Towerがアカウントカスタマイズに対応

Security

  1. AWS CloudTrail LakeがAWS Config連携に対応 ★
  2. Amazon Macieがセンシティブデータの自動検知に対応
  3. AWS Wickrが一般利用開始
  4. Amazon InspectorがLambda関数の診断をサポート ★
  5. AWS KMSが外部の鍵管理システムとの統合をサポート
  6. Amazon GuardDuty RDS Protectionを発表

aws.amazon.com

Amazon CloudWatch Logsのデータ保護機能を発表

概要

Amazon CloudWatch Logsに対してデータ保護ポリシーを適用することで、ログ中の機密データを自動的にマスクしてくれるようになりました。

aws.amazon.com

検証

Amazon CloudWatchで適当なロググループを作成し、「アクション」→「Create data protection policy」を押下します。

保護ポリシーを選択します。
今回は「EmailAddress」と「Name」を選択しました。
保護できるデータの種類は以下のドキュメントにまとまっており、執筆時点では日本語対応はしていません。

docs.aws.amazon.com

サンプルログを流してみると、ちゃんとマスクされていました。
確かに日本語はマスクされないようです。

また、「logs:Unmask」権限を付与したユーザで「Display」→「Temporarily unmask protected data」を押下すると、以下のようにマスク前のデータを表示できます。

「logs:Unmask」権限の許可ポリシー例

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "logs:Unmask",
            "Resource": "*"
        }
    ]
}

「Data protection」タブでマスクされたデータ数も確認できます。

ちなみに、検知ログはAmazon CloudWatch Logs、Amazon Kinesis Data Firehose、Amazon S3に送信することができます。
以下は、新たに作成したAmazon CloudWatch Logsのロググループに送信する例です。

新たにログを流して、2件の検知を発生させます。

送信先のロググループに2件の検知ログが表示されました。

所感

セキュリティ監視の現場では、機密データはマスクしたいという要件が多く、HIPPA、GDPR、PCI-DSSといった規制にも役立つ便利な機能だと思います。

AWS Organizationsで管理者権限の委任が可能に

概要

AWS Organizationsのポリシー管理をメンバーアカウントに委任できるようになりました。

aws.amazon.com

検証

AWS Organizationsで「設定」→「委任」を押下します。

エディタで委任ポリシーを定義できます。

前提として、ポリシー作成前にメンバーアカウントでポリシー管理画面を表示すると、権限が無くエラーになります。

続いて先ほどのエディタで以下のように定義します。
<accountID>は委任先のメンバーアカウントを表しており、この例ではListによる閲覧権限を許可しています。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Statement",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<accountID>:root"
            },
            "Action": [
                "organizations:List*"
            ],
            "Resource": "*"
        }
    ]
}

再度、メンバーアカウントでポリシー管理画面を表示すると、今度は閲覧することができました。

所感

組織の管理アカウントにログインさせずに管理業務を委任させることができるため、マルチアカウント運用に役立つ機能だと思います。

AWS CloudTrail LakeがAWS Config連携に対応

概要

AWS CloudTrail Lakeに、AWS Configの設定項目情報を取り込むことができるようになりました。

aws.amazon.com

検証

AWS CloudTrailの「レイク」→「イベントデータストアの作成」を押下します。

イベントデータストア名を入力します。

イベントタイプに「設定項目」を選択し、イベントデータストアを作成します。

イベントデータストアが作成されました。

適当なセキュリティグループ「test-sg」を作成します。

以下のようにレイクのエディタから検索できました。

AWS Config設定項目情報を検索するクエリ例

SELECT
    eventTime, eventData.configuration, eventData.resourceId, eventData.resourceName, eventData.resourceType
FROM
    <config-event-data-store-id>
WHERE
    eventTime > '2022-12-02 16:00:00' AND eventTime < '2022-12-02 17:00:00' AND eventData.resourceName = 'test-sg'
ORDER
    BY eventTime DESC;

また、AWS CloudTrail用のイベントデータストアと結合することで、より詳細な調査ができます。

AWS CloudTrailとAWS Config設定項目情報を統合して検索するクエリ例

SELECT
    config.eventTime, config.eventData.configuration, config.eventData.resourceId, config.eventData.resourceName, config.eventData.resourceType, userIdentity.username, trail.eventName, trail.eventSource
FROM
    <config-event-data-store-id> AS config JOIN <trail-event-data-store-id> AS trail ON config.eventData.resourceName = element_at(trail.requestParameters, 'groupName') 
WHERE
    config.eventTime > '2022-12-02 17:00:00' AND config.eventTime < '2022-12-02 18:00:00'
ORDER
    BY config.eventTime DESC;

所感

簡単にAWS Configの設定項目情報を取り込むことができ、AWS CloudTrailと統合して分析ができることは調査に非常に役立つと思います。

Amazon InspectorがLambda関数の診断をサポート

概要

Amazon InspectorでLambda関数とLambda Layersの脆弱性スキャンができるようになりました。
スキャン対象は、Java、NodeJS、および Pythonで記述された関数とレイヤーです。
スキャンタイミングは、AWS Lambdaのデプロイ時、AWS Lambdaの更新時、新しい脆弱性 ( CVE ) の公開時です。

aws.amazon.com

検証

以前からAmazon Inspectorを使用している場合は、「Lambdaスキャン」が無効化状態なので、「有効化」→「Lambda標準スキャン」を押下して有効化します。

ちなみに、AWS Organizationを使っていれば、組織の管理アカウントから全メンバーアカウントをまとめて有効化できます。このとき、新しいメンバーアカウントのスキャンを自動的に有効化しておきます。

適当なLambda関数を作成します。

AWSから提供されている、「arn:aws:lambda:ap-northeast-1:249908578461:layer:AWSLambda-Python37-SciPy1x:118」レイヤーを追加してみました。

しばらくすると、検知されました。

ドリルダウンで詳細な検知情報を確認できます。

所感

サードパーティ製品を使わずに、ネイティブ機能でAWS Lambdaを診断できる点は非常に便利だと思います。

おわりに

今回は、AWSの新機能を4つ紹介させていただきました。
AWSをはじめ、クラウドサービスは日々進化を続けています。
常に最新情報をキャッチアップして、すぐに手を動かしてみることが機能を理解するための近道です。
本記事がAWSをご利用されている皆様の一助になれば幸いです。