接入教程
1. 登录AWS控制台并进入CloudTrail服务
2. 创建跟踪并选择要记录的API事件类型
3. 指定存储日志的S3存储桶位置
4. 配置可选的事件筛选条件与报警通知
5. 启用跟踪后即可查看实时API活动日志
使用Python创建Trail
import boto3
client = boto3.client('cloudtrail',
region_name='us-east-1',
aws_access_key_id='YOUR_API_KEY',
aws_secret_access_key='YOUR_SECRET_KEY')
response = client.create_trail(
Name='MyTrail',
S3BucketName='my-cloudtrail-bucket',
IncludeGlobalServiceEvents=True,
IsMultiRegionTrail=True
)
print(response)
使用PHP获取Trail状态
<?php
require 'vendor/autoload.php';
use Aws\CloudTrail\CloudTrailClient;
use Aws\Exception\AwsException;
$client = new CloudTrailClient([
'version' => 'latest',
'region' => 'us-west-2',
'credentials' => [
'key' => 'YOUR_API_KEY',
'secret' => 'YOUR_SECRET_KEY'
]
]);
try {
$result = $client->describeTrails([
'trailNameList' => ['MyTrail']
]);
print_r($result);
} catch (AwsException $e) {
echo $e->getMessage();
}
?>
使用JavaScript列出事件
const AWS = require('aws-sdk');
AWS.config.update({
region: 'ap-northeast-1',
accessKeyId: 'YOUR_API_KEY',
secretAccessKey: 'YOUR_SECRET_KEY'
});
const cloudtrail = new AWS.CloudTrail();
const params = {
LookupAttributes: [
{
AttributeKey: 'EventName',
AttributeValue: 'DescribeInstances'
}
],
MaxResults: 10
};
cloudtrail.lookupEvents(params, (err, data) => {
if (err) console.log(err, err.stack);
else console.log(data);
});
常见问题
CloudTrail可以记录哪些类型的API调用?
CloudTrail可以记录大多数AWS服务的API调用活动,包括EC2、S3、IAM等服务的创建、修改、删除操作,以及登录事件等管理活动。
CloudTrail日志存储在何处?
CloudTrail日志默认存储在您指定的S3存储桶中,您也可以配置将日志发送至CloudWatch Logs进行实时监控和分析。
如何确保CloudTrail日志的安全性?
建议启用日志文件完整性验证,对S3存储桶启用加密和访问控制,并定期审计Trail配置,确保日志不被篡改。
Aitishiku.com