Configに紐づいたS3バケットにはどんなデータが配信されますか
困っていた内容
Configに紐づいたS3バケットにConfigからのログが定期的に配信されています。バケットに保存されるデータはどのような内容ですか?
どう対応すればいいの?
Configの設定レコーダーを有効にすることで、紐づけられたS3バケットには、複数の設定項目を含む、設定スナップショットが配信されます。
設定スナップショットには記録対象リソースのメタデータ、リージョンやリソースタイプ等のリソース識別子、タグ情報、他のリソースとの関係等が記録されリソース状況の記録や変更履歴を確認することが可能です。
設定項目とは
記録対象リソースのメタデータ、識別子といった各種設定情報を記録するものです。
設定項目は、アカウント内に存在するサポートされている AWS リソースのさまざまな属性の特定時点のビューを表します。設定項目のコンポーネントには、メタデータ、属性、関係、現在の設定、および関連イベントが含まれます。AWS Config は、記録しているリソース タイプの変更を検出するたびに設定項目を作成します。たとえば、AWS Config が Amazon S3 バケットを記録している場合、AWS Config はバケットが作成、更新、または削除されるたびに設定項目を作成します。また、設定した記録頻度で AWS Config が設定項目を作成するように選択することもできます。
設定スナップショットとは?
設定スナップショットは、特定の時点におけるアカウント内のサポート対象リソースの設定項目の集合です。記録されているリソースとその設定のスナップショットを提供します。
設定スナップショットは、アカウント内に存在するサポート対象リソースの設定項目のコレクションです。この設定スナップショットは、記録されているリソースとその設定の完全な図です。設定スナップショットは、設定を検証するための便利なツールになります。たとえば、設定スナップショットを定期的に調べて、誤って設定されているリソースや、存在すべきではないリソースがないか確認するといいでしょう。設定スナップショットは複数の形式で利用できます。設定スナップショットは、指定した Amazon Simple Storage Service (Amazon S3) バケットに配信できます。さらに、AWS Config コンソールで特定の時点を選択し、リソース間の関係を使用して設定項目のスナップショット内を移動できます。
公式ドキュメントでは、配信スナップショット例として以下のJSONが表記されています。
JSON例
{
"fileVersion": "1.0",
"requestId": "asudf8ow-4e34-4f32-afeb-0ace5bf3trye",
"configurationItems": [
{
"configurationItemVersion": "1.0",
"resourceId": "vol-ce676ccc",
"arn": "arn:aws:us-west-2b:123456789012:volume/vol-ce676ccc",
"accountId": "12345678910",
"configurationItemCaptureTime": "2014-03-07T23:47:08.918Z",
"configurationStateID": "3e660fdf-4e34-4f32-afeb-0ace5bf3d63a",
"configurationItemStatus": "OK",
"relatedEvents": [
"06c12a39-eb35-11de-ae07-adb69edbb1e4",
"c376e30d-71a2-4694-89b7-a5a04ad92281"
],
"availibilityZone": "us-west-2b",
"resourceType": "AWS::EC2::Volume",
"resourceCreationTime": "2014-02-27T21:43:53.885Z",
"tags": {},
"relationships": [
{
"resourceId": "i-344c463d",
"resourceType": "AWS::EC2::Instance",
"name": "Attached to Instance"
}
],
"configuration": {
"volumeId": "vol-ce676ccc",
"size": 1,
"snapshotId": "",
"availabilityZone": "us-west-2b",
"state": "in-use",
"createTime": "2014-02-27T21:43:53.0885+0000",
"attachments": [
{
"volumeId": "vol-ce676ccc",
"instanceId": "i-344c463d",
"device": "/dev/sdf",
"state": "attached",
"attachTime": "2014-03-07T23:46:28.0000+0000",
"deleteOnTermination": false
}
],
"tags": [
{
"tagName": "environment",
"tagValue": "PROD"
},
{
"tagName": "name",
"tagValue": "DataVolume1"
}
],
"volumeType": "standard"
}
},
{
"configurationItemVersion": "1.0",
"resourceId": "i-344c463d",
"accountId": "12345678910",
"arn": "arn:aws:ec2:us-west-2b:123456789012:instance/i-344c463d",
"configurationItemCaptureTime": "2014-03-07T23:47:09.523Z",
"configurationStateID": "cdb571fa-ce7a-4ec5-8914-0320466a355e",
"configurationItemStatus": "OK",
"relatedEvents": [
"06c12a39-eb35-11de-ae07-adb69edbb1e4",
"c376e30d-71a2-4694-89b7-a5a04ad92281"
],
"availibilityZone": "us-west-2b",
"resourceType": "AWS::EC2::Instance",
"resourceCreationTime": "2014-02-26T22:56:35.000Z",
"tags": {
"Name": "integ-test-1",
"examplename": "examplevalue"
},
"relationships": [
{
"resourceId": "vol-ce676ccc",
"resourceType": "AWS::EC2::Volume",
"name": "Attached Volume"
},
{
"resourceId": "vol-ef0e06ed",
"resourceType": "AWS::EC2::Volume",
"name": "Attached Volume",
"direction": "OUT"
},
{
"resourceId": "subnet-47b4cf2c",
"resourceType": "AWS::EC2::SUBNET",
"name": "Is contained in Subnet",
"direction": "IN"
}
],
"configuration": {
"instanceId": "i-344c463d",
"imageId": "ami-ccf297fc",
"state": {
"code": 16,
"name": "running"
},
"privateDnsName": "ip-172-31-21-63.us-west-2.compute.internal",
"publicDnsName": "ec2-54-218-4-189.us-west-2.compute.amazonaws.com",
"stateTransitionReason": "",
"keyName": "configDemo",
"amiLaunchIndex": 0,
"productCodes": [],
"instanceType": "t1.micro",
"launchTime": "2014-02-26T22:56:35.0000+0000",
"placement": {
"availabilityZone": "us-west-2b",
"groupName": "",
"tenancy": "default"
},
"kernelId": "aki-fc8f11cc",
"monitoring": {
"state": "disabled"
},
"subnetId": "subnet-47b4cf2c",
"vpcId": "vpc-41b4cf2a",
"privateIpAddress": "172.31.21.63",
"publicIpAddress": "54.218.4.189",
"architecture": "x86_64",
"rootDeviceType": "ebs",
"rootDeviceName": "/dev/sda1",
"blockDeviceMappings": [
{
"deviceName": "/dev/sda1",
"ebs": {
"volumeId": "vol-ef0e06ed",
"status": "attached",
"attachTime": "2014-02-26T22:56:38.0000+0000",
"deleteOnTermination": true
}
},
{
"deviceName": "/dev/sdf",
"ebs": {
"volumeId": "vol-ce676ccc",
"status": "attached",
"attachTime": "2014-03-07T23:46:28.0000+0000",
"deleteOnTermination": false
}
}
],
"virtualizationType": "paravirtual",
"clientToken": "aBCDe123456",
"tags": [
{
"key": "Name",
"value": "integ-test-1"
},
{
"key": "examplekey",
"value": "examplevalue"
}
],
"securityGroups": [
{
"groupName": "launch-wizard-2",
"groupId": "sg-892adfec"
}
],
"sourceDestCheck": true,
"hypervisor": "xen",
"networkInterfaces": [
{
"networkInterfaceId": "eni-55c03d22",
"subnetId": "subnet-47b4cf2c",
"vpcId": "vpc-41b4cf2a",
"description": "",
"ownerId": "12345678910",
"status": "in-use",
"privateIpAddress": "172.31.21.63",
"privateDnsName": "ip-172-31-21-63.us-west-2.compute.internal",
"sourceDestCheck": true,
"groups": [
{
"groupName": "launch-wizard-2",
"groupId": "sg-892adfec"
}
],
"attachment": {
"attachmentId": "eni-attach-bf90c489",
"deviceIndex": 0,
"status": "attached",
"attachTime": "2014-02-26T22:56:35.0000+0000",
"deleteOnTermination": true
},
"association": {
"publicIp": "54.218.4.189",
"publicDnsName": "ec2-54-218-4-189.us-west-2.compute.amazonaws.com",
"ipOwnerId": "amazon"
},
"privateIpAddresses": [
{
"privateIpAddress": "172.31.21.63",
"privateDnsName": "ip-172-31-21-63.us-west-2.compute.internal",
"primary": true,
"association": {
"publicIp": "54.218.4.189",
"publicDnsName": "ec2-54-218-4-189.us-west-2.compute.amazonaws.com",
"ipOwnerId": "amazon"
}
}
]
}
],
"ebsOptimized": false
}
}
]
}
設定スナップショットの活用例
- コンプライアンス監査:定期的にスナップショットを確認し、リソースが期待通りに設定されているか確認できます。
- 変更追跡:時系列でスナップショットを比較することで、リソースの変更履歴を追跡できます。
- セキュリティ分析:不適切な設定や潜在的なセキュリティリスクを特定するのに役立ちます。
- トラブルシューティング:問題発生時の状態を遡って確認することができます。
設定方法
1.マネジメントコンソール上でで「Config」→「設定」に移動
2.「データと配信」を選択
3.保持期間やS3バケットを指定して設定を保存