やりたいこと
Amazon EventBridgeにて特定のユーザ群がEC2インスタンスをLaunchした場合のパターンを記述する。尚、ユーザ名はTESTで始まるとする。
環境情報
aws --version aws-cli/1.19.112 Python/2.7.18 Linux/4.14.322-244.536.amzn2.x86_64 botocore/1.20.112
やり方
Event pattern部分に以下のJSONを記載する。
{ "source": ["aws.ec2"], "detail-type": ["AWS API Call via CloudTrail"], "detail": { "eventSource": ["ec2.amazonaws.com"], "eventName": ["RunInstances"], "userIdentity": { "userName": [{ "prefix": "TEST" }] } } }
以下、補足です。
補足
CloudTrailのEvent historyを見ると、RunInstancesを実行時には以下のようなユーザ情報が格納されています。よってユーザ名が「.userIdentity.userName」で取得できることが分かります。
[Filter]> .userIdentity { "accessKeyId": "xx", "accountId": "xx", "arn": "arn:aws:iam::xx:user/TEST0001" "principalId": "xx", "sessionContext": { "attributes": { "creationDate": "...", "mfaAuthenticated": "false" }, "sessionIssuer": {}, "webIdFederationData": {} }, "type": "IAMUser", "userName": "TEST0001" }
もしEventBridge側で完全一致でユーザ名を絞る場合は
"userIdentity": { "userName": [ "TEST" ] }
と記載をしますが、今回は前方一致で検索をすべく上述したように「prefix」を追加しています。
以上。