こんにちは、クラウドセキュリティアーキテクトの大島悠司です。 先日、ラスベガスでAWS re:Invent 2022が開催されました。 私は現地には行っていませんが、会期中は最新情報を追いながら検証をしていたので、今回は「Cloud OperationとSecurity」から4つの検証結果をご紹介させていただきます。 以下が「Cloud OperationとSecurity」に関するアップデートであり、「★」印に関して検証内容をご紹介します。 Cloud Operations Security Amazon CloudWatch Logsに対してデータ保護ポリシーを適用することで、ログ中の機密データを自動的にマスクしてくれるようになりました。 Amazon CloudWatchで適当なロググループを作成し、「アクション」→「Create data protection policy」を押下します。
保護ポリシーを選択します。 サンプルログを流してみると、ちゃんとマスクされていました。
また、「logs:Unmask」権限を付与したユーザで「Display」→「Temporarily unmask protected data」を押下すると、以下のようにマスク前のデータを表示できます。
「logs:Unmask」権限の許可ポリシー例 「Data protection」タブでマスクされたデータ数も確認できます。
ちなみに、検知ログはAmazon CloudWatch Logs、Amazon Kinesis Data Firehose、Amazon S3に送信することができます。
新たにログを流して、2件の検知を発生させます。
送信先のロググループに2件の検知ログが表示されました。
セキュリティ監視の現場では、機密データはマスクしたいという要件が多く、HIPPA、GDPR、PCI-DSSといった規制にも役立つ便利な機能だと思います。 AWS Organizationsのポリシー管理をメンバーアカウントに委任できるようになりました。 AWS Organizationsで「設定」→「委任」を押下します。
エディタで委任ポリシーを定義できます。
前提として、ポリシー作成前にメンバーアカウントでポリシー管理画面を表示すると、権限が無くエラーになります。
続いて先ほどのエディタで以下のように定義します。 再度、メンバーアカウントでポリシー管理画面を表示すると、今度は閲覧することができました。
組織の管理アカウントにログインさせずに管理業務を委任させることができるため、マルチアカウント運用に役立つ機能だと思います。 AWS CloudTrail Lakeに、AWS Configの設定項目情報を取り込むことができるようになりました。 AWS CloudTrailの「レイク」→「イベントデータストアの作成」を押下します。
イベントデータストア名を入力します。
イベントタイプに「設定項目」を選択し、イベントデータストアを作成します。
イベントデータストアが作成されました。
適当なセキュリティグループ「test-sg」を作成します。
以下のようにレイクのエディタから検索できました。
AWS Config設定項目情報を検索するクエリ例 また、AWS CloudTrail用のイベントデータストアと結合することで、より詳細な調査ができます。
AWS CloudTrailとAWS Config設定項目情報を統合して検索するクエリ例 簡単にAWS Configの設定項目情報を取り込むことができ、AWS CloudTrailと統合して分析ができることは調査に非常に役立つと思います。 Amazon InspectorでLambda関数とLambda Layersの脆弱性スキャンができるようになりました。 以前から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最大規模の学習型カンファレンスで、今年も100を超えるサービスアップデートがありました。
Amazon CloudWatch Logsのデータ保護機能を発表
概要
検証
今回は「EmailAddress」と「Name」を選択しました。
保護できるデータの種類は以下のドキュメントにまとまっており、執筆時点では日本語対応はしていません。
確かに日本語はマスクされないようです。{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "logs:Unmask",
"Resource": "*"
}
]
}
以下は、新たに作成したAmazon CloudWatch Logsのロググループに送信する例です。所感
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連携に対応
概要
検証
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;
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;
所感
Amazon InspectorがLambda関数の診断をサポート
概要
スキャン対象は、Java、NodeJS、および Pythonで記述された関数とレイヤーです。
スキャンタイミングは、AWS Lambdaのデプロイ時、AWS Lambdaの更新時、新しい脆弱性 ( CVE ) の公開時です。検証
所感
おわりに
AWSをはじめ、クラウドサービスは日々進化を続けています。
常に最新情報をキャッチアップして、すぐに手を動かしてみることが機能を理解するための近道です。
本記事がAWSをご利用されている皆様の一助になれば幸いです。