AWS CloudTrail で AWS IoT Greengrass V2 API コールのログ記録 - AWS IoT Greengrass

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS CloudTrail で AWS IoT Greengrass V2 API コールのログ記録

AWS IoT Greengrass V2 は AWS CloudTrail という、AWS IoT Greengrass Version 2 の ユーザー、ロール、または AWS のサービスが実行したアクションを記録するサービスと統合しています。CloudTrail は、AWS IoT Greengrass のすべての API コールをイベントとしてキャプチャします。キャプチャされた呼び出しには、AWS IoT Greengrass コンソールの呼び出しと、AWS IoT Greengrass API オペレーションへのコード呼び出しが含まれます。

トレイルを作成する場合、AWS IoT Greengrass のイベントを含む S3 バケットに CloudTrail イベントの継続的な配信を有効にできます。追跡を設定しない場合でも、CloudTrail コンソールの [Event history (イベント履歴)] で最新のイベントを表示できます。CloudTrail が収集した情報を使用して、AWS IoT Greengrass に対して行われた要求、要求が行われた IP アドレス、要求を行った人、要求が行われた日時、および追加の詳細を判別できます。

CloudTrail の詳細については、「AWS CloudTrail ユーザーガイド」を参照してください。

AWS IoT Greengrass V2CloudTrail での 情報

CloudTrail は、アカウント作成時に AWS アカウント で有効になります。AWS IoT Greengrass でアクティビティが発生すると、そのアクティビティは [Event history] (イベント履歴) の他の AWS のサービスのイベントとともに CloudTrail イベントに記録されます。最近のイベントは、AWS アカウント で表示、検索、ダウンロードできます。詳細については、「CloudTrail イベント履歴でのイベントの表示」を参照してください。

AWS IoT Greengrass のイベントなど、AWS アカウント のイベントの継続的な記録に対して、追跡を作成します。trail 、CloudTrail はログファイルを S3 バケットに配信できます。デフォルトでは、コンソールで証跡を作成するときに、証跡がすべての AWS リージョン に適用されます。証跡では、AWS パーティションのすべてのリージョンからのイベントがログに記録され、指定した S3 バケットにログファイルが配信されます。さらに、その他の AWS サービスを設定して、CloudTrail ログで収集したデータをより詳細に分析し、それに基づく対応を行うことができます。詳細については、次を参照してください:

すべての AWS IoT Greengrass V2 アクションは CloudTrail によってログに記録され、AWS IoT Greengrass V2 API リファレンスに記録されます。例えば、CreateComponentVersionCreateDeploymentCancelDeployment の各アクションを呼び出すと、CloudTrail ログファイルにエントリが生成されます。

各イベントまたはログエントリには、誰がリクエストを生成したかという情報が含まれます。アイデンティティ情報は、以下を判別するのに役立ちます:

  • リクエストが、ルート認証情報と AWS Identity and Access Management (IAM) ユーザー認証情報のどちらを使用して送信されたか。

  • リクエストがロールまたはフェデレーションユーザーのテンポラリなセキュリティ認証情報を使用して行われたかどうか。

  • リクエストが別の AWS サービスによって行われたかどうか。

詳細については、「CloudTrail userIdentity エレメント」を参照してください。

CloudTrail の AWS IoT Greengrass データイベント

データイベントは、リソースに対して、またはリソース内で実行されるリソースオペレーションに関する情報を提供します (コンポーネントバージョンの取得やデプロイの設定など)。これらのイベントは、データプレーンオペレーションとも呼ばれます。データイベントは、多くの場合、高ボリュームのアクティビティです。デフォルトでは、CloudTrail はデータイベントをログ記録しません。CloudTrail [イベント履歴] にはデータイベントは記録されません。

追加の変更がイベントデータに適用されます。CloudTrail の料金の詳細については、「AWS CloudTrail の料金」を参照してください。

CloudTrail コンソール、AWS CLI、または CloudTrail API オペレーションを使用して、AWS IoT Greengrass リソースタイプのデータイベントをログ記録できます。このセクションのテーブルは、AWS IoT Greengrass で使用できるリソースタイプを示しています。

  • CloudTrail コンソールを使用してデータイベントを記録するには、データイベントをログに記録する証跡またはイベントデータストアを作成するか、既存の証跡またはイベントデータストアを更新してデータイベントをログに記録します。

    1. データイベントをログに記録するには、[データイベント] を選択します。

    2. [データイベントタイプ] リストから、データイベントをログ記録するリソースのタイプを選択します。

    3. 使用するログセレクタテンプレートを選択します。リソースタイプのすべてのデータイベントをログに記録したり、すべての readOnly イベントをログに記録したり、すべての writeOnly イベントをログに記録したり、カスタムログセレクタテンプレートを作成して readOnlyeventNameresources.ARN フィールドでフィルタリングしたりできます。

  • AWS CLI を使用してデータイベントをログ記録するには、--advanced-event-selectors パラメータを設定して、eventCategory フィールドを Data に等しく、resources.type フィールドをリソースタイプ値に等しくします (テーブルを参照)。条件を追加して、readOnlyeventName および resources.ARN フィールドの値でフィルタリングできます。

以下の表に示しているのは、AWS IoT Greengrass リソースタイプです。データイベントタイプ (コンソール) 列には、CloudTrail コンソールの [データイベントタイプ] リストから選択する値が表示されます。resources.type 値列には、AWS CLI または CloudTrail API を使用して高度なイベントセレクタを設定するときに指定する resources.type 値が表示されます。CloudTrail に記録されたデータ API 列には、リソース タイプの CloudTrail にログ記録された API コールが表示されます。

データイベントタイプ (コンソール) resources.type 値 CloudTrail にログ記録されたデータ API
IoT 証明書 AWS::IoT::Certificate
  • VerifyClientDeviceIdentity

  • VerifyClientDeviceIoTCertificateAssociation

IoT Greengrass コンポーネントバージョン AWS::GreengrassV2::ComponentVersion
IoT Greengrass デプロイ AWS::GreengrassV2::Deployment
  • GetDeploymentConfiguration

IoT モノ AWS::IoT::Thing
  • ListThingGroupsForCoreDevices

  • PutCertificateAuthorities

  • VerifyClientDeviceIoTCertificateAssociation

eventNamereadOnly、および resources.ARN フィールドでフィルタリングして、自分にとって重要なイベントのみをログに記録するように高度なイベントセレクタを設定できます。

特定のデータ API を含める、または除外するために、eventName にフィルターを追加します。

フィールドの詳細については、「AdvancedFieldSelector」を参照してください。

次の例は、AWS CLI を使用して高度なセレクタを設定する方法を示しています。TrailName および region をユーザー自身の情報に置き換えます。

例 — IoT モノのデータイベントをログ記録する
aws cloudtrail put-event-selectors --trail-name TrailName --region region \ --advanced-event-selectors \ ‘[ { “Name”: “Log all thing data events”, “FieldSelectors”: [ { “Field”: “eventCategory”, “Equals”: [“Data”] }, { “Field”: “resources.type”, “Equals”: [“AWS::IoT::Thing”] } ] } ]’
例 – 特定の IoT モノの API でフィルタリングする
aws cloudtrail put-event-selectors --trail-name TrailName --region region \ --advanced-event-selectors \ ‘[ { “Name”: “Log IoT Greengrass PutCertificateAuthorities API calls”, “FieldSelectors”: [ { “Field”: “eventCategory”, “Equals”: [“Data”] }, { “Field”: “resources.type”, “Equals”: [“AWS::IoT::Thing”] }, { “Field”: “eventName”, “Equals”: [“PutCertificateAuthorities”] } ] } ]’
例 – Greengrass データイベントをすべてログに記録する
aws cloudtrail put-event-selectors --trail-name TrailName --region region \ --advanced-event-selectors \ ‘[ { “Name”: “Log all certificate data events”, “FieldSelectors”: [ { “Field”: “eventCategory”, “Equals”: [ “Data” ] }, { “Field”: “resources.type”, “Equals”: [ “AWS::IoT::Certificate” ] } ] }, { “Name”: “Log all component version data events”, “FieldSelectors”: [ { “Field”: “eventCategory”, “Equals”: [ “Data” ] }, { “Field”: “resources.type”, “Equals”: [ “AWS::GreengrassV2::ComponentVersion” ] } ] }, { “Name”: “Log all deployment version”, “FieldSelectors”: [ { “Field”: “eventCategory”, “Equals”: [ “Data” ] }, { “Field”: “resources.type”, “Equals”: [ “AWS::GreengrassV2::Deployment” ] } ] }, { “Name”: “Log all thing data events”, “FieldSelectors”: [ { “Field”: “eventCategory”, “Equals”: [ “Data” ] }, { “Field”: “resources.type”, “Equals”: [ “AWS::IoT::Thing” ] } ] } ]’

AWS IoT GreengrassCloudTrail の 管理イベント

管理イベントでは、AWS アカウントのリソースで実行される管理オペレーションについての情報が得られます。これらのイベントは、コントロールプレーンオペレーションとも呼ばれます。CloudTrail は、デフォルトで管理イベントをログ記録します。

AWS IoT Greengrass は、すべての AWS IoT Greengrass コントロールプレーンオペレーションを管理イベントとして記録します。CloudTrail に AWS IoT Greengrass ログ記録する AWS IoT Greengrass コントロールプレーンオペレーションのリストについては、「AWS IoT Greengrass API リファレンス、バージョン 2」を参照してください。

AWS IoT Greengrass V2 ログファイルエントリの概要

証跡は、指定した S3 バケットにイベントをログファイルとして配信するように設定できます。CloudTrail ログファイルには、1 つ以上のログエントリがあります。イベントは、任意の送信元からの単一のリクエストを表します。これには、リクエストされたアクション、アクションの日時、リクエストパラメータなどに関する情報が含まれます。CloudTrail ログファイルは、パブリック API コールの順序付けられたスタックトレースではないため、特定の順序では表示されません。

以下の例は、CreateDeployment アクションを示す CloudTrail ログエントリです。

{ "eventVersion": "1.08", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::123456789012:user/Administrator", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "Administrator" }, "eventTime": "2021-01-06T02:38:05Z", "eventSource": "greengrass.amazonaws.com", "eventName": "CreateDeployment", "awsRegion": "us-west-2", "sourceIPAddress": "203.0.113.0", "userAgent": "aws-cli/2.1.9 Python/3.7.9 Windows/10 exe/AMD64 prompt/off command/greengrassv2.create-deployment", "requestParameters": { "deploymentPolicies": { "failureHandlingPolicy": "DO_NOTHING", "componentUpdatePolicy": { "timeoutInSeconds": 60, "action": "NOTIFY_COMPONENTS" }, "configurationValidationPolicy": { "timeoutInSeconds": 60 } }, "deploymentName": "Deployment for MyGreengrassCoreGroup", "components": { "aws.greengrass.Cli": { "componentVersion": "2.0.3" } }, "iotJobConfiguration": {}, "targetArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup" }, "responseElements": { "iotJobArn": "arn:aws:iot:us-west-2:123456789012:job/fdfeba1d-ac6d-44ef-ab28-54f684ea578d", "iotJobId": "fdfeba1d-ac6d-44ef-ab28-54f684ea578d", "deploymentId": "4196dddc-0a21-4c54-a985-66a525f6946e" }, "requestID": "311b9529-4aad-42ac-8408-c06c6fec79a9", "eventID": "c0f3aa2c-af22-48c1-8161-bad4a2ab1841", "readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "123456789012" }