Slide 1

Slide 1 text

超個⼈的な AWS CLI の使い所 - Amazon CloudTrail 編 - [JAWS-UG CLI専⾨⽀部 #412 CloudShell⼊⾨] 株式会社サーバーワークス 市野 和明(JAWS-UG 神⼾) 2024-07-25

Slide 2

Slide 2 text

⽬次 1. ⾃⼰紹介 2. 本題 3. 悩み

Slide 3

Slide 3 text

⾃⼰紹介

Slide 4

Slide 4 text

4 はじめまして 名前︓市野 和明(いちの かずあき) 所属︓株式会社サーバーワークス マネージドサクセス部 テクニカルサポート課 好きな AWS サービス︓ AWS CLI (テクサポとして) 嫌いな AWS サービス︓ Amazon FSx for Windows 趣味︓ミクが好き、酒を飲む @kazzpapa3

Slide 5

Slide 5 text

5 今までしゃべったやつ 以前、JAWS-UG 北陸新幹線 で登壇した際の資料が AWS テクニカルサポート内でプチバズりしたそうなのです。 私が普段サポート業務やってて思う、恨みつらみ もっとこうすればいいのに って思いを書いていますので、AWS に限らずなんらかのサポートに問い合わせ をするロールの⽅は⼀読いただけると嬉しいです。

Slide 6

Slide 6 text

本題

Slide 7

Slide 7 text

7 の、前に CLI 専⾨⽀部のおかげで、転職ができました。

Slide 8

Slide 8 text

8 の、前に CLI 専⾨⽀部のおかげで、転職ができました。 現職への転職のきっかけとなったのは AWS に特化して仕事がしたい︕ だったのですが、転職活動中に CLI 専⾨⽀部に⼊り浸ってあれこれ学ばせてい ただきました。 ⾯接でも 「CLI 専⾨⽀部というところで、AWS API のレベルから学習してます感」 を全⾯に出して無事転職ができました。 その後、少し⾜が遠のいてしまったので、お礼もそこそこだったのですが、 あらためてありがとうございます。

Slide 9

Slide 9 text

9 お礼も⾔えたので本題 みなさま CloudTrail を使ってますか︖

Slide 10

Slide 10 text

10 無料利⽤枠もあり みなさま CloudTrail を使ってますか︖ CloudTrail ではデフォルトで 90⽇間、AWS サービスの管理イベントログを 無料で記録してくれています。 管理イベントログ=コントロールプレーンオペレーションのログ データイベントログ=データプレーンオペレーションのログ インサイトイベントログ=API コールの総量や API エラー率が通常パターンから外れた場合に記録 ・・・データイベント、インサイトイベントは上記の無料での記録の対象外となるため要注意

Slide 11

Slide 11 text

11 データイベントと管理イベントで扱いが異なる みなさま CloudTrail を使ってますか︖ CloudTrail ではデフォルトで 90⽇間、AWS サービスの管理イベントログを 無料で記録してくれています。 管理イベントログ=コントロールプレーンオペレーションのログ データイベントログ=データプレーンオペレーションのログ インサイトイベントログ=API コールの総量や API エラー率が通常パターンから外れた場合に記録 ・・・データイベント、インサイトイベントは上記の無料での記録の対象外となるため要注意 それぞれのイベントの違いやその他詳細は以下をご参照ください CloudTrail のデータイベントと管理イベントの違いは何ですか。 https://repost.aws/ja/knowledge-center/cloudtrail-data-management-events How CloudTrail works https://docs.aws.amazon.com/awscloudtrail/latest/userguide/how-cloudtrail-works.html Logging Insights events https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-insights-events-with-cloudtrail.html

Slide 12

Slide 12 text

12 本質的には、証跡を作成し管理が望ましい AWS CloudTrail の証跡を作成し、 S3 バケットへの保存(および意図しない削除や改ざんへの対策をする)や Amazon CloudWatch Logs や Amazon EventBridge との統合を⾏い セキュリティ監視や監査に役⽴てることが望ましいです。

Slide 13

Slide 13 text

13 必要に応じてデータイベントの記録も有効化する必要あり AWS CloudTrail の証跡を作成し、 S3 バケットへの保存(および意図しない削除や改ざんへの対策をする)や Amazon CloudWatch Logs や Amazon EventBridge との統合を⾏い セキュリティ監視や監査に役⽴てることが望ましいです。 また、前述の通りデータイベントやインサイトイベントの記録もデフォルトでは されていないため、それらの記録が必要な場合も、CloudTrail の証跡の作成が 必要です。

Slide 14

Slide 14 text

14 ちゃんと解析するなら Athena 連携などがより強⼒ AWS CloudTrail の証跡を作成し、 S3 バケットへの保存(および意図しない削除や改ざんへの対策をする)や Amazon CloudWatch Logs や Amazon EventBridge との統合を⾏い セキュリティ監視や監査に役⽴てることが望ましいです。 また、前述の通りデータイベントやインサイトイベントの記録もデフォルトでは されていないため、それらの記録が必要な場合も、CloudTrail の証跡の作成が 必要です。 ⾼度な解析が必要であれば Athena と連携しクエリを投げて抽出、がより強⼒

Slide 15

Slide 15 text

15 ただ、トラブルシュートには無料枠でも有⽤ AWS CloudTrail の証跡を作成し、 S3 バケットへの保存(および意図しない削除や改ざんへの対策をする)や Amazon CloudWatch Logs や Amazon EventBridge との統合を⾏い セキュリティ監視や監査に役⽴てることが望ましいです。 また、前述の通りデータイベントやインサイトイベントの記録もデフォルトでは されていないため、それらの記録が必要な場合も、CloudTrail の証跡の作成が 必要です。 ⾼度な解析が必要であれば Athena と連携しクエリを投げて抽出、がより強⼒ ただ、無料で 90⽇間の管理イベントが記録されているため トラブルシュートの際に有⽤と考えています。 IAM ポリシーの制限が影響していると思われるのに、何が原因か特定できない、 意図しないアクセスキーの使⽤が疑われる、などのケース

Slide 16

Slide 16 text

では、⾒てみる

Slide 17

Slide 17 text

17 AWS マネジメントコンソールでの表⽰ CloudTrail コンソールへアクセスし「イベント履歴」をクリックします。

Slide 18

Slide 18 text

18 ルックアップ属性の選択 「ルックアップ属性」プルダウンを選択することで属性を決定できます

Slide 19

Slide 19 text

19 ルックアップ属性を「イベント名」とした例 選択したルックアップ属性に応じてフィルタリングが可能

Slide 20

Slide 20 text

20 ルックアップ属性を「イベント名」とした例 イベント名では AWS API アクション名でのフィルタリングが可能となります

Slide 21

Slide 21 text

21 ルックアップ属性を「イベントソース」とした例 ルックアップ属性をイベントソースとして選択することで

Slide 22

Slide 22 text

22 ルックアップ属性を「イベントソース」とした例 AWS サービスごと(サービスプリンシパル)でのフィルタリングも可能に。

Slide 23

Slide 23 text

23 時系列での検索 記録されている 90⽇間の範囲内での検索も可能

Slide 24

Slide 24 text

24 時系列での検索 相対範囲、絶対範囲の2種類を指定可能

Slide 25

Slide 25 text

25 表⽰項⽬の表⽰・⾮表⽰も調整可能 得られた結果で表⽰させる列を選択可能

Slide 26

Slide 26 text

ただし

Slide 27

Slide 27 text

27 ここまで⾒た以上のフィルタリングができない 例えばルックアップ属性にない観点での検索・抽出 errorCode に 〇〇 を含むイベント あるいはアクセス元が xx.xx.xx.xx であるイベント

Slide 28

Slide 28 text

28 ここまで⾒た以上のフィルタリングができない 例えばルックアップ属性にない観点での検索・抽出 errorCode に 〇〇 を含むイベント あるいはアクセス元が xx.xx.xx.xx であるイベント あるいは、AND/OR のような論理演算を利⽤した絞り込み ユーザー名が 〇〇 かつ アクセス元が xx.xx.xx.xx であるイベント イベント名が SwitchRole かつ xx が failure であるイベント

Slide 29

Slide 29 text

そこで CLI の出番

Slide 30

Slide 30 text

30 基本的な構⽂(個⼈的によく使うオプションとともに) START=$(date +%s -d "2024-07-22 00:00:00") END=$(date +%s -d "2024-07-22 01:59:59") ATTR_KEY="EventSource" ATTR_VALUE="ec2.amazonaws.com" aws cloudtrail lookup-events ¥ --start-time "${START}" ¥ --end-time "${END}" ¥ --lookup-attributes AttributeKey="${ATTR_KEY}",AttributeValue="${ATTR_VALUE}" ¥ --max-items integer

Slide 31

Slide 31 text

31 基本的な構⽂(個⼈的によく使うオプションとともに) START=$(date +%s -d "2024-07-22 00:00:00") END=$(date +%s -d "2024-07-22 01:59:59") ATTR_KEY="EventSource" ATTR_VALUE="ec2.amazonaws.com" aws cloudtrail lookup-events ¥ --start-time "${START}" ¥ --end-time "${END}" ¥ --lookup-attributes AttributeKey="${ATTR_KEY}",AttributeValue="${ATTR_VALUE}" ¥ --max-items integer なお、lookup-events サブコマンドのすべてのオプションが必須ではない項⽬となっています。

Slide 32

Slide 32 text

32 出⼒例 { "Events": [ { "EventId": "86f82c29-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "EventName": "DescribeVolumes", "ReadOnly": "true", "EventTime": "2024-07-22T01:58:27+09:00", "EventSource": "ec2.amazonaws.com", "Username": "f397768c-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "Resources": [], "CloudTrailEvent": "{¥"eventVersion¥":¥"1.09¥",¥"userIdentity¥":{¥"type¥":¥"AssumedRole¥",¥"principalId¥":¥"ARXXXXXXXXXXXXXXXXXXX:f397768c- xxxx-xxxx-xxxx-xxxxxxxxxxxx¥",¥"arn¥":¥"arn:aws:sts::XXXXXXXXXXXX:assumed-role/AWSServiceRoleForApplicationMigrationService/f397768c-xxxx-xxxx-xxxx- xxxxxxxxxxxx¥",¥"accountId¥":¥"XXXXXXXXXXXX¥",¥"sessionContext¥":{¥"sessionIssuer¥":{¥"type¥":¥"Role¥",¥"principalId¥":¥"ARXXXXXXXXXXXXXXXXXXX¥",¥" arn¥":¥"arn:aws:iam::XXXXXXXXXXXX:role/aws-service- role/mgn.amazonaws.com/AWSServiceRoleForApplicationMigrationService¥",¥"accountId¥":¥"XXXXXXXXXXXX¥",¥"userName¥":¥"AWSServiceRoleForApplicationMig rationService¥"},¥"attributes¥":{¥"creationDate¥":¥"2024-07- 21T16:58:26Z¥",¥"mfaAuthenticated¥":¥"false¥"}},¥"invokedBy¥":¥"mgn.amazonaws.com¥"},¥"eventTime¥":¥"2024-07- 21T16:58:27Z¥",¥"eventSource¥":¥"ec2.amazonaws.com¥",¥"eventName¥":¥"DescribeVolumes¥",¥"awsRegion¥":¥"ap-northeast- 1¥",¥"sourceIPAddress¥":¥"mgn.amazonaws.com¥",¥"userAgent¥":¥"mgn.amazonaws.com¥",¥"requestParameters¥":{¥"volumeSet¥":{},¥"filterSet¥":{¥"items¥":[ {¥"name¥":¥"tag:AWSApplicationMigrationServiceManaged¥",¥"valueSet¥":{¥"items¥":[{¥"value¥":¥"mgn.amazonaws.com¥"}]}},{¥"name¥":¥"tag:Name¥",¥"val ueSet¥":{¥"items¥":[{¥"value¥":¥"AWS Application Migration Service Replication Volume¥"},{¥"value¥":¥"AWS Application Migration Service Conversion Server Volume¥"}]}}]}},¥"responseElements¥":null,¥"requestID¥":¥"5292c075-xxxx-xxxx-xxxx-xxxxxxxxxxxx¥",¥"eventID¥":¥"86f82c29-xxxx-xxxx-xxxx- xxxxxxxxxxxx¥",¥"readOnly¥":true,¥"eventType¥":¥"AwsApiCall¥",¥"managementEvent¥":true,¥"recipientAccountId¥":¥"XXXXXXXXXXXX¥",¥"vpcEndpointId¥":¥"v pce-xxxxxxxxxxxxxxxxxxxxx¥",¥"eventCategory¥":¥"Management¥"}” }, { … } ] }

Slide 33

Slide 33 text

33 出⼒例 { "Events": [ { "EventId": "86f82c29-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "EventName": "DescribeVolumes", "ReadOnly": "true", "EventTime": "2024-07-22T01:58:27+09:00", "EventSource": "ec2.amazonaws.com", "Username": "f397768c-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "Resources": [], "CloudTrailEvent": "{¥"eventVersion¥":¥"1.09¥",¥"userIdentity¥":{¥"type¥":¥"AssumedRole¥",¥"principalId¥":¥"ARXXXXXXXXXXXXXXXXXXX:f397768c- xxxx-xxxx-xxxx-xxxxxxxxxxxx¥",¥"arn¥":¥"arn:aws:sts::XXXXXXXXXXXX:assumed-role/AWSServiceRoleForApplicationMigrationService/f397768c-xxxx-xxxx-xxxx- xxxxxxxxxxxx¥",¥"accountId¥":¥"XXXXXXXXXXXX¥",¥"sessionContext¥":{¥"sessionIssuer¥":{¥"type¥":¥"Role¥",¥"principalId¥":¥"ARXXXXXXXXXXXXXXXXXXX¥",¥" arn¥":¥"arn:aws:iam::XXXXXXXXXXXX:role/aws-service- role/mgn.amazonaws.com/AWSServiceRoleForApplicationMigrationService¥",¥"accountId¥":¥"XXXXXXXXXXXX¥",¥"userName¥":¥"AWSServiceRoleForApplicationMig rationService¥"},¥"attributes¥":{¥"creationDate¥":¥"2024-07- 21T16:58:26Z¥",¥"mfaAuthenticated¥":¥"false¥"}},¥"invokedBy¥":¥"mgn.amazonaws.com¥"},¥"eventTime¥":¥"2024-07- 21T16:58:27Z¥",¥"eventSource¥":¥"ec2.amazonaws.com¥",¥"eventName¥":¥"DescribeVolumes¥",¥"awsRegion¥":¥"ap-northeast- 1¥",¥"sourceIPAddress¥":¥"mgn.amazonaws.com¥",¥"userAgent¥":¥"mgn.amazonaws.com¥",¥"requestParameters¥":{¥"volumeSet¥":{},¥"filterSet¥":{¥"items¥":[ {¥"name¥":¥"tag:AWSApplicationMigrationServiceManaged¥",¥"valueSet¥":{¥"items¥":[{¥"value¥":¥"mgn.amazonaws.com¥"}]}},{¥"name¥":¥"tag:Name¥",¥"val ueSet¥":{¥"items¥":[{¥"value¥":¥"AWS Application Migration Service Replication Volume¥"},{¥"value¥":¥"AWS Application Migration Service Conversion Server Volume¥"}]}}]}},¥"responseElements¥":null,¥"requestID¥":¥"5292c075-xxxx-xxxx-xxxx-xxxxxxxxxxxx¥",¥"eventID¥":¥"86f82c29-xxxx-xxxx-xxxx- xxxxxxxxxxxx¥",¥"readOnly¥":true,¥"eventType¥":¥"AwsApiCall¥",¥"managementEvent¥":true,¥"recipientAccountId¥":¥"XXXXXXXXXXXX¥",¥"vpcEndpointId¥":¥"v pce-xxxxxxxxxxxxxxxxxxxxx¥",¥"eventCategory¥":¥"Management¥"}” }, { … } ] } あとは --query オプションで絞り込むなり、 ⼀旦すべて取得してから grep するなり jq を利⽤して CSV 形式にして、みんな⼤好き Excel で確認するなり…

Slide 34

Slide 34 text

34 AttributeKey について AttributeKey として指定できる値 指定できる値 AttributeValue として取りうる値 例 AccessKeyId IAM ユーザーのアクセスキー ID AKIAIOSFODNN7EXAMPLE EventId 特定の CloudTrail イベント ID b5cc8c40-12ba-4d08-a8d9- 2bceb9a3e002 のような UUID EventName 特定の AWS API イベント名 RunInstances EventSource 検索対象とする AWS サービスの名前空間(サービ スプリンシパル) iam.amazonaws.com ReadOnly API 呼び出しが 読み取り専⽤操作であったか否か true/false ResourceName 対象の AWS リソース名 CloudTrail_CloudWatchLogs_Role ResourceType AWS CloudFormation でサポートされている AWS リソースタイプ AWS::S3::Bucket Username ユーザー名 root, IAM ユーザー名 https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events-cli.html

Slide 35

Slide 35 text

35 AttributeKey、AttributeValue について AttributeKey の値として指定する⽂字列は⼤⽂字⼩⽂字の区別がある

Slide 36

Slide 36 text

36 AttributeKey、AttributeValue について AttributeKey の値として指定する⽂字列は⼤⽂字⼩⽂字の区別がある また、AttributeKey と AttributeValue の組み合わせは⼀対のみ指定が可能

Slide 37

Slide 37 text

37 AttributeKey、AttributeValue について AttributeKey の値として指定する⽂字列は⼤⽂字⼩⽂字の区別がある また、AttributeKey と AttributeValue の組み合わせは⼀対のみ指定が可能 AttributeValue の制限 最⼤⻑は 2000 ⽂字まで。 次の⽂字 (ʻ _ʼ、ʻ ʼ、ʻ ,ʼ、ʻ ¥¥nʼ) は、2000 ⽂字の制限に対して 2 ⽂字としてカウントされる。

Slide 38

Slide 38 text

38 AttributeKey、AttributeValue について AttributeKey の値として指定する⽂字列は⼤⽂字⼩⽂字の区別がある また、AttributeKey と AttributeValue の組み合わせは⼀対のみ指定が可能 AttributeValue の制限 最⼤⻑は 2000 ⽂字まで。 次の⽂字 (ʻ _ʼ、ʻ ʼ、ʻ ,ʼ、ʻ ¥¥nʼ) は、2000 ⽂字の制限に対して 2 ⽂字としてカウントされる。 詳細についてはドキュメントで lookup-events ̶ AWS CLI 1.33.28 Command Reference https://docs.aws.amazon.com/cli/latest/reference/cloudtrail/lookup-events.html

Slide 39

Slide 39 text

39 AttributeKey、AttributeValue について AttributeKey の値として指定する⽂字列は⼤⽂字⼩⽂字の区別がある また、AttributeKey と AttributeValue の組み合わせは⼀対のみ指定が可能 AttributeValue の制限 最⼤⻑は 2000 ⽂字まで。 次の⽂字 (ʻ _ʼ、ʻ ʼ、ʻ ,ʼ、ʻ ¥¥nʼ) は、2000 ⽂字の制限に対して 2 ⽂字としてカウントされる。 各属性の詳細についてはドキュメントで lookup-events ̶ AWS CLI 1.33.28 Command Reference https://docs.aws.amazon.com/cli/latest/reference/cloudtrail/lookup-events.html 結局、複雑なことはできないのでは︖

Slide 40

Slide 40 text

40 結局のところ… { "Events": [ { "EventId": "86f82c29-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "EventName": "DescribeVolumes", "ReadOnly": "true", "EventTime": "2024-07-22T01:58:27+09:00", "EventSource": "ec2.amazonaws.com", "Username": "f397768c-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "Resources": [], "CloudTrailEvent": "{¥"eventVersion¥":¥"1.09¥",¥"userIdentity¥":{¥"type¥":¥"AssumedRole¥",¥"principalId¥":¥"ARXXXXXXXXXXXXXXXXXXX:f397768c- xxxx-xxxx-xxxx-xxxxxxxxxxxx¥",¥"arn¥":¥"arn:aws:sts::XXXXXXXXXXXX:assumed-role/AWSServiceRoleForApplicationMigrationService/f397768c-xxxx-xxxx-xxxx- xxxxxxxxxxxx¥",¥"accountId¥":¥"XXXXXXXXXXXX¥",¥"sessionContext¥":{¥"sessionIssuer¥":{¥"type¥":¥"Role¥",¥"principalId¥":¥"ARXXXXXXXXXXXXXXXXXXX¥",¥" arn¥":¥"arn:aws:iam::XXXXXXXXXXXX:role/aws-service- role/mgn.amazonaws.com/AWSServiceRoleForApplicationMigrationService¥",¥"accountId¥":¥"XXXXXXXXXXXX¥",¥"userName¥":¥"AWSServiceRoleForApplicationMig rationService¥"},¥"attributes¥":{¥"creationDate¥":¥"2024-07- 21T16:58:26Z¥",¥"mfaAuthenticated¥":¥"false¥"}},¥"invokedBy¥":¥"mgn.amazonaws.com¥"},¥"eventTime¥":¥"2024-07- 21T16:58:27Z¥",¥"eventSource¥":¥"ec2.amazonaws.com¥",¥"eventName¥":¥"DescribeVolumes¥",¥"awsRegion¥":¥"ap-northeast- 1¥",¥"sourceIPAddress¥":¥"mgn.amazonaws.com¥",¥"userAgent¥":¥"mgn.amazonaws.com¥",¥"requestParameters¥":{¥"volumeSet¥":{},¥"filterSet¥":{¥"items¥":[ {¥"name¥":¥"tag:AWSApplicationMigrationServiceManaged¥",¥"valueSet¥":{¥"items¥":[{¥"value¥":¥"mgn.amazonaws.com¥"}]}},{¥"name¥":¥"tag:Name¥",¥"val ueSet¥":{¥"items¥":[{¥"value¥":¥"AWS Application Migration Service Replication Volume¥"},{¥"value¥":¥"AWS Application Migration Service Conversion Server Volume¥"}]}}]}},¥"responseElements¥":null,¥"requestID¥":¥"5292c075-xxxx-xxxx-xxxx-xxxxxxxxxxxx¥",¥"eventID¥":¥"86f82c29-xxxx-xxxx-xxxx- xxxxxxxxxxxx¥",¥"readOnly¥":true,¥"eventType¥":¥"AwsApiCall¥",¥"managementEvent¥":true,¥"recipientAccountId¥":¥"XXXXXXXXXXXX¥",¥"vpcEndpointId¥":¥"v pce-xxxxxxxxxxxxxxxxxxxxx¥",¥"eventCategory¥":¥"Management¥"}” }, { … } ] } あとは --query オプションで絞り込むなり、 ⼀旦すべて取得してから grep するなり jq を利⽤して CSV 形式にして、みんな⼤好き Excel で確認するなり… CLI が万能選⼿っていうわけではなく、 取得後の検索や加⼯が GUI よりは容易︖かなっていう印象

Slide 41

Slide 41 text

悩みなど

Slide 42

Slide 42 text

42 AttributeKey について AttributeKey として指定できる値 指定できる値 AttributeValue として取りうる値 例 AccessKeyId IAM ユーザーのアクセスキー ID AKIAIOSFODNN7EXAMPLE EventId 特定の CloudTrail イベント ID b5cc8c40-12ba-4d08-a8d9- 2bceb9a3e002 のような UUID EventName 特定の AWS API イベント名 RunInstances EventSource 検索対象とする AWS サービスの名前空間(サービ スプリンシパル) iam.amazonaws.com ReadOnly API 呼び出しが 読み取り専⽤操作であったか否か true/false ResourceName 対象の AWS リソース名 CloudTrail_CloudWatchLogs_Role ResourceType AWS CloudFormation でサポートされている AWS リソースタイプ AWS::S3::Bucket Username ユーザー名 root, IAM ユーザー名 https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events-cli.html

Slide 43

Slide 43 text

43 AttributeKey について AttributeKey として指定できる値 指定できる値 AttributeValue として取りうる値 例 AccessKeyId IAM ユーザーのアクセスキー ID AKIAIOSFODNN7EXAMPLE EventId 特定の CloudTrail イベント ID b5cc8c40-12ba-4d08-a8d9- 2bceb9a3e002 のような UUID EventName 特定の AWS API イベント名 RunInstances EventSource 検索対象とする AWS サービスの名前空間(サービ スプリンシパル) iam.amazonaws.com ReadOnly API 呼び出しが 読み取り専⽤操作であったか否か true/false ResourceName 対象の AWS リソース名 CloudTrail_CloudWatchLogs_Role ResourceType AWS CloudFormation でサポートされている AWS リソースタイプ AWS::S3::Bucket Username ユーザー名 root, IAM ユーザー名 https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events-cli.html これらをどう知るか︖

Slide 44

Slide 44 text

44 EventName、ResourceType については 以下のドキュメントから知りたいサービスへ⾶んで、 サポートされているイベントを把握する必要がある︖ ResourceType については、 サポートされている EventName が判明次第読みかえ︖ AWS service topics for CloudTrail https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific- topics.html#cloudtrail-aws-service-specific-topics-list

Slide 45

Slide 45 text

45 EventName、ResourceType については ⼀例

Slide 46

Slide 46 text

46 EventName、ResourceType については ⼀例 ここを知る

Slide 47

Slide 47 text

47 EventName、ResourceType については ⼀例 知った上でAPI Reference で把握

Slide 48

Slide 48 text

48 EventName、ResourceType については ⼀例

Slide 49

Slide 49 text

49 EventName、ResourceType については ⼀例 ここを知る

Slide 50

Slide 50 text

50 EventName、ResourceType については ⼀例 知った上でAPI Reference で把握

Slide 51

Slide 51 text

51 EventName、ResourceType については EventName については⾮公式ながら以下のような収集をしている⽅も List of values for parameter EventName in AWS Cloudtrail events https://gist.github.com/pkazi/8b5a1374771f6efa5d55b92d8835718c

Slide 52

Slide 52 text

52 EventSource … EventSource についても⾮公式ながら以下のような収集をしている⽅も List of AWS Service Principals https://gist.github.com/shortjared/4c1e3fe52bdfa47522cfe5b41e5d6f22

Slide 53

Slide 53 text

53 EventSource … EventSource についても⾮公式ながら以下のような収集をしている⽅も List of AWS Service Principals https://gist.github.com/shortjared/4c1e3fe52bdfa47522cfe5b41e5d6f22 リスト化されているけど、 ⾮公式だしな…

Slide 54

Slide 54 text

54 EventSource … 先ほどのドキュメントの AWS service topics for CloudTrail セクションから対 応している AWS サービスを知る 該当サービスのドキュメント内の「Understanding Cloud Directory Log File Entries」セクションの ログの出⼒例から知る︖

Slide 55

Slide 55 text

55 EventSource … サービスプリンシパルが ⼀覧になったドキュメントがある or 出⼒ができるといいのに…

Slide 56

Slide 56 text

56 EventSource … 私が確認できている範囲で、サービスプリンシパルが⼀覧で⾒られる場所は CloudTrail コンソールのイベント履歴画⾯のプルダウン部分

Slide 57

Slide 57 text

57 EventSource … 私が確認できている範囲で、サービスプリンシパルが⼀覧で⾒られる場所は CloudTrail コンソールのイベント履歴画⾯のプルダウン部分 GUI から離れたいのに、 確認のために同じ操作をするための GUI 画⾯を⾒るのは少し不⽑だな

Slide 58

Slide 58 text

余談

Slide 59

Slide 59 text

59 マネージメントコンソールの URL について 今回取り上げた CloudTrail や CloudWatch などのコンソール画⾯は、 AWS テクニカルサポート担当者では⾒られないとのこと。 (そもそもマネコンに⼊れないらしい) そのため、ケース起票時にコンソールの URL をそのまま送っても、 サポートエンジニアで⾒られず、問い合わせ側の真意が伝わりにくいそうです。 CloudTrail であれば イベント ID を共有する CloudWatch であれば URL とキャプチャ画像をそえる

Slide 60

Slide 60 text

60 マネージメントコンソールの URL について 今回取り上げた CloudTrail や CloudWatch などのコンソール画⾯は、 AWS テクニカルサポート担当者では⾒られないとのこと。 (そもそもマネコンに⼊れないらしい) そのため、ケース起票時にコンソールの URL をそのまま送っても、 サポートエンジニアで⾒られず、問い合わせ側の真意が伝わりにくいそうです。 CloudTrail であれば イベント ID を共有する CloudWatch であれば URL とキャプチャ画像をそえる 「サポートから回答で CloudWatch メトリクスの URL が返ってくるじゃないか︖」 これは、AWS 内部のツールでエンドユーザー側が⾒た時の URL として組み⽴てられるツールがあるかららしいです。

Slide 61

Slide 61 text

No content