AWS CLIを利用して、CloudTrailの設定を有効にしてみます。
前提条件
CloudTrailへの権限
- CloudTrailに対してフル権限があること。
AWS CLIのバージョン
-
以下のバージョンで動作確認済
- AWS CLI 1.7.26
コマンド
aws --version
結果(例)
aws-cli/1.7.26 Python/2.7.5 Darwin/13.4.0
- 準備
=======
0.1. リージョンの決定
作成するTrailのリージョンを決めます。
(カレントユーザが利用するカレントリージョンも切り変わります。)
コマンド(アイルランドリージョンの場合)
export AWS_DEFAULT_REGION='eu-west-1'
0.2. 変数の確認
プロファイルとリージョンが想定のものになっていることを確認します。
変数の確認
aws configure list
結果(例)
Name Value Type Location
---- ----- ---- --------
profile cloudtrailFull-prjZ-mbp13iamFull-prjZ-mbp13 env AWS_DEFAULT_PROFILE
access_key ****************XXXX shared-credentials-file
secret_key ****************XXXX shared-credentials-file
region eu-west-1 env AWS_DEFAULT_REGION
0.3. Trail用S3バケットの確認
変数の確認
cat << ETX
S3_BUCKET_NAME: ${S3_BUCKET_NAME}
ETX
- 事前作業
===========
1.1. S3プレフィックスの決定
今回は、デフォルトのままにします。
注釈: デフォルト: /${キープレフィックス
}/AWSLogs/${AWS_ID}/CloudTrail/${リ ージョン名}
1.2. Trail名の決定
コマンド
TRAIL_NAME='Default'
- 本作業
=========
2.1. Trailの作成
コマンド
cat << ETX
TRAIL_NAME: ${TRAIL_NAME}
S3_BUCKET_NAME: ${S3_BUCKET_NAME}
ETX
コマンド
aws cloudtrail create-trail \
--name ${TRAIL_NAME} \
--s3-bucket-name ${S3_BUCKET_NAME}
結果(例)
{
"IncludeGlobalServiceEvents": true,
"Name": "Default",
"S3BucketName": "trail-XXXXXXXXXXXX-eu-west-1"
}
2.2. Trailの内容確認
コマンド
aws cloudtrail describe-trails --trail-name-list ${TRAIL_NAME}
結果(例)
{
"trailList": [
{
"IncludeGlobalServiceEvents": true,
"Name": "Default",
"S3BucketName": "trail-XXXXXXXXXXXX-eu-west-1"
}
]
}
2.1. ロギングの状態確認
コマンド
aws cloudtrail get-trail-status --name ${TRAIL_NAME}
結果(例)
{
"IsLogging": false
}
2.2. ロギングの開始
コマンド
aws cloudtrail start-logging --name ${TRAIL_NAME}
結果
(戻り値なし)
2.3. ロギングの状態確認
コマンド
aws cloudtrail get-trail-status --name ${TRAIL_NAME}
ロギング開始直後は下記の内容が表示されます。
結果(例)
{
"IsLogging": true,
"StartLoggingTime": 1421652962.51
}
10分ほどまって、S3バケットにログが保存されると、以下の内容に変化します
。
結果(例)
{
"StartLoggingTime": 1421652962.51,
"IsLogging": true,
"LatestDeliveryTime": 1421653022.589
}
- 事後作業
===========
3.1. ログ確認
S3バケットにログファイルが作成されていることを確認します。
コマンド
aws s3 ls s3://${S3_BUCKET_NAME}/AWSLogs/${AWS_ID}/CloudTrail/${AWS_DEFAULT_REGION}/`date -u +%Y`/`date -u +%m`/`date -u +%d`/
結果(例)
2015-01-19 14:29:42 980 XXXXXXXXXXXX_CloudTrail_eu-west-1_20150119T0530Z_XgjNcNlurtSBMnGv.json.gz
3.2. イベント確認
コマンド
aws cloudtrail lookup-events
結果(例)
{
"Events": [
{
"EventId": "c0a32f8d-e7a8-451f-9a36-064b1687d863",
"Username": "administrator-prj203-mbp1-administratorprj203mbp13-FQJW6N64C75G",
"EventTime": 1431259459.0,
"CloudTrailEvent": "{"eventVersion":"1.03","userIdentity":{"type":"IAMUser","principalId":"AIDAXXXXXXXXXXXXXXXXX","arn":"arn:aws:iam::XXXXXXXXXXXX:user/administrator-prjz-mbp13","accountId":"XXXXXXXXXXXX","accessKeyId":"AKIAXXXXXXXXXXXXXXXX","userName":"administrator-prjz-mbp13"},"eventTime":"2015-05-11T12:04:19Z","eventSource":"cloudtrail.amazonaws.com","eventName":"StartLogging","awsRegion":"eu-west-1","sourceIPAddress":"xxx.xxx.xxx.xxx","userAgent":"aws-cli/1.7.26Python/2.7.5 Darwin/13.4.0","requestParameters":{"name":"Default"},"responseElements":null,"requestID":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","eventID":"xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","eventType":"AwsApiCall","recipientAccountId":"XXXXXXXXXXXX"}",
"EventName": "StartLogging",
"Resources": [
{
"ResourceType": "AWS::CloudTrail::Trail",
"ResourceName": "Default"
}
]
}
]
}