CloudWatch Logsのデータ保護ポリシーは、
郵便局で手紙をチェックする「機密情報検査官」
のようなものです。
アプリケーションから送られてくる「ログ」という手紙の中に、見せてはいけない情報が含まれていないかをチェックし、必要に応じて黒塗り(マスキング)します。
アプリケーションが生成するログは、状況を報告する「手紙」のようなもの。時にはうっかり個人情報が含まれてしまうことも...
検査官が「クレジットカード番号のパターン」「メールアドレスの形式」などを知っていて、手紙の中から見つけ出します
見つけた機密情報を黒いペンで塗りつぶし「*****」に置き換え。第三者が見ても中身がわからないように保護します
「今日はクレジットカード番号を5件、メールアドレスを10件検出しました」という記録を残し、後から確認できるようにします
😱 機密情報がそのままログに記録されてしまう!
😊 機密情報が自動的にマスキングされて安心!
検出した機密情報の種類と件数を記録します。データ自体は変更しませんが、「何が見つかったか」を把握できます。
検出した機密情報を「*****」でマスキング(置換)します。実際にログデータを変更して機密情報を隠します。
AWS が提供する 「マネージドデータ識別子」 を使用して、150種類以上の機密データパターンを検出できます。
💡 ポイント: 日本固有のデータ(マイナンバー、運転免許証番号など)にも対応しています。また、カスタムデータ識別子を作成して独自のパターンを追加することも可能です。
# データ保護ポリシーを作成(JSONファイルを指定) aws logs put-data-protection-policy \ --log-group-identifier "/aws/my-application/logs" \ --policy-document file://data-protection-policy.json # 現在のポリシーを確認 aws logs get-data-protection-policy \ --log-group-identifier "/aws/my-application/logs" # ポリシーを削除 aws logs delete-data-protection-policy \ --log-group-identifier "/aws/my-application/logs"
{
"Name": "data-protection-policy",
"Description": "機密情報の検出とマスキング",
"Version": "2021-06-01",
"Statement": [
{
// 監査アクション: 検出結果を記録
"Sid": "audit-policy",
"DataIdentifier": [
"arn:aws:dataprotection::aws:data-identifier/CreditCardNumber",
"arn:aws:dataprotection::aws:data-identifier/EmailAddress",
"arn:aws:dataprotection::aws:data-identifier/Address"
],
"Operation": {
"Audit": {
"FindingsDestination": {
"CloudWatchLogs": {
"LogGroup": "/aws/data-protection/audit-logs"
}
}
}
}
},
{
// マスキングアクション: 機密情報を「*****」に置換
"Sid": "deidentify-policy",
"DataIdentifier": [
"arn:aws:dataprotection::aws:data-identifier/CreditCardNumber",
"arn:aws:dataprotection::aws:data-identifier/EmailAddress",
"arn:aws:dataprotection::aws:data-identifier/Address"
],
"Operation": {
"Deidentify": {
"MaskConfig": {}
}
}
}
]
}
Resources: MyLogGroup: Type: AWS::Logs::LogGroup Properties: LogGroupName: /aws/my-application/logs RetentionInDays: 30 # データ保護ポリシーを設定 DataProtectionPolicy: Name: "data-protection-policy" Version: "2021-06-01" Statement: - Sid: "audit-and-mask" DataIdentifier: - "arn:aws:dataprotection::aws:data-identifier/CreditCardNumber" - "arn:aws:dataprotection::aws:data-identifier/EmailAddress" Operation: Audit: FindingsDestination: CloudWatchLogs: LogGroup: /aws/data-protection/audit Deidentify: MaskConfig: {}
患者の氏名、病歴、保険番号などの医療情報をログから自動的に保護。HIPAA対応に貢献します。
クレジットカード番号、CVV、顧客の住所など決済関連情報を保護。PCI-DSS準拠をサポートします。
口座番号、取引情報、顧客の個人情報を保護。金融規制への対応と顧客データの保護を実現します。
EU圏ユーザーのデータをGDPR準拠で保護。国際的なプライバシー規制への対応を支援します。
※ 料金は東京リージョン(ap-northeast-1)の場合。最新の料金は AWS 公式サイトをご確認ください。
はい、Deidentifyアクションでマスキングされたデータは「*****」に
上書き
されます。ただし、
logs:Unmask
権限を持つユーザーは、CloudWatch Logsコンソールや API でデータを
表示する際に
元の値を見ることができます(ログ自体は変更されたまま)。この機能は監査やトラブルシューティング用に提供されています。
いいえ、データ保護ポリシーは ポリシー設定後に新しく送信されたログイベント にのみ適用されます。既存のログには遡及的に適用されません。既存ログに機密情報が含まれている場合は、手動で対応するか、ログの保持期間設定で古いログを自動削除する方法を検討してください。
はい、 カスタムデータ識別子 を作成できます。正規表現を使用して、社員番号や独自の識別子など、AWS が提供するマネージドデータ識別子では検出できないパターンを定義できます。
データ保護ポリシーはログの取り込み時にスキャンを行うため、わずかな処理オーバーヘッドが発生します。ただし、一般的なユースケースでは体感できるほどの遅延は発生しません。大量のログを処理する場合は、コストと合わせてパフォーマンスの監視を行うことを推奨します。
データ保護ポリシーは、東京(ap-northeast-1)を含む主要なAWSリージョンで利用可能です。ただし、一部のリージョンでは利用できない場合があります。最新の対応状況は AWS のリージョン表をご確認ください。
CloudWatch Logs データ保護ポリシーは、
ログに含まれる機密情報を自動で検出・保護する強力な機能です
Created by SSuzuki1063
AWS SAP Learning Resources