Systems Manager Automation のトラブルシューティング - AWS Systems Manager

Systems Manager Automation のトラブルシューティング

AWS Systems Manager の一機能である AWS Systems Manager Automation に問題が生じた場合にトラブルシューティングする際は、次の情報が役立ちます。このトピックには、自動化エラーメッセージにおける問題を解決するための特定のタスクが含まれます。

一般的な自動化エラー

このセクションでは、一般的な自動化エラーについて説明します。

VPC not defined 400

デフォルトでは、オートメーションが AWS-UpdateLinuxAmi ランブックまたは AWS-UpdateWindowsAmi ランブックを実行すると、システムはデフォルト VPC (172.30.0.0/16) に一時インスタンスを作成します。デフォルト VPC を削除した場合、次のエラーが発生します。

VPC not defined 400

この問題を解決するには、SubnetId 入力パラメータに値を指定する必要があります。

自動化の実行開始の失敗

AWS Identity and Access Management (IAM) ロール、オートメーションのポリシーが正しく設定されていない場合、オートメーションはアクセス拒否エラーまたは無効な継承ロールエラーによって失敗する可能性があります。

アクセスが拒否されました

次の例では、オートメーションがアクセス拒否エラーによって失敗した状態を説明します。

Systems Manager API へのアクセスが拒否されました

エラーメッセージ: User: user arn isn't authorized to perform: ssm:StartAutomationExecution on resource: document arn (Service: AWSSimpleSystemsManagement; Status Code: 400; Error Code: AccessDeniedException; Request ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)

  • 考えられる原因 1: オートメーションを開始しようとしているユーザーに、StartAutomationExecution API を呼び出すアクセス許可がない。この問題を解決するには、オートメーションを開始するために使用されるユーザーに、必要な IAM ポリシーをアタッチします。

  • 考えられる原因 2: オートメーションを開始しようとしているユーザーに StartAutomationExecution API を呼び出すアクセス許可があるが、特定のランブックを使用して API を呼び出すアクセス許可がない。この問題を解決するには、オートメーションを開始するために使用されるユーザーに、必要な IAM ポリシーをアタッチします。

PassRole 許可がないことによるアクセスの拒否

エラーメッセージ: User: user arn isn't authorized to perform: iam:PassRole on resource: automation assume role arn (Service: AWSSimpleSystemsManagement; Status Code: 400; Error Code: AccessDeniedException; Request ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)

オートメーションを開始しようとしているユーザーに、ロールを継承するための PassRole 許可がない。この問題を解決するには、オートメーションを開始しようとしているユーザーのロールに、iam:PassRole ポリシーをアタッチします。詳細については、「タスク 2: iam:PassRole ポリシーをオートメーションロールにアタッチする」を参照してください。

無効な継承ロール

自動化を実行するとき、継承ロールはランブックで提供されるか、あるいはランブックにパラメータ値として渡されます。継承ロールが指定されていない、あるいは正しく設定されていない場合、複数の種類のエラーが発生することがあります。

形式が正しくない継承ロール

エラーメッセージ: The format of the supplied assume role ARN isn't valid. 継承ロールが不適切にフォーマットされている。この問題を解決するには、ランブックで有効な継承ロールが指定されていること、あるいは自動化を開始するときにランタイムパラメータとして指定されていることを確認します。

継承ロールが継承されない

エラーメッセージ: The defined assume role is unable to be assumed. (Service: AWSSimpleSystemsManagement; Status Code: 400; Error Code: InvalidAutomationExecutionParametersException; Request ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)

実行は開始するが、ステータスが失敗になる

アクション固有の失敗

ランブックには、ステップとステップの実行が順番に含まれています。各ステップは、1 つまたは複数の AWS のサービス API を起動します。この API は、ステップの入力、動作、出力を決定します。エラーによって 1 つのステップが失敗する可能性のある複数の場所があります。失敗メッセージは、いつどこでエラーが発生したかを示します。

Amazon Elastic Compute Cloud (Amazon EC2) コンソールで失敗メッセージを表示するには、失敗したステップの [出力を表示] リンクを選択します。AWS CLI から失敗メッセージを表示するには、get-automation-execution を呼び出して、失敗した FailureMessage から StepExecution 属性を検索します。

次の例では、aws:runInstance アクションに関連付けられたステップが失敗しています。それぞれの例では、異なる種類のエラーを示しています。

イメージの欠落

エラーメッセージ: Automation Step Execution fails when it's launching the instance(s). Get Exception from RunInstances API of ec2 Service. Exception Message from RunInstances API: [The image id '[ami id]' doesn't exist (Service: AmazonEC2; Status Code: 400; Error Code: InvalidAMIID.NotFound; Request ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)]. Please refer to Automation Service Troubleshooting Guide for more diagnosis details.

aws:runInstances アクションは、存在しない ImageId への入力を受信しました。この問題を解決するには、適切な AMI ID を使用してランブックまたはパラメータ値を更新します。

継承ロールポリシーに十分なアクセス許可がない

エラーメッセージ: Automation Step Execution fails when it's launching the instance(s). Get Exception from RunInstances API of ec2 Service. Exception Message from RunInstances API: [You aren't authorized to perform this operation. Encoded authorization failure message: xxxxxxx (Service: AmazonEC2; Status Code: 403; Error Code: UnauthorizedOperation; Request ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)]. Please refer to Automation Service Troubleshooting Guide for more diagnosis details.

継承ロールに、EC2 インスタンスで RunInstances API を呼び出す十分なアクセス許可がありません。この問題を解決するには、継承ロールに RunInstances API を呼び出すアクセス許可がある継承ロールに IAM ポリシーをアタッチします。詳細については、「コンソールを使用して Automation 用のサービスロールを作成する」を参照してください。

予期できないステート

エラーメッセージ: Step fails when it's verifying launched instance(s) are ready to be used. Instance i-xxxxxxxxx entered unexpected state: shutting-down. Please refer to Automation Service Troubleshooting Guide for more diagnosis details.

  • 考えられる原因 1: インスタンスまたは Amazon EC2 サービスに問題がある。この問題を解決するには、インスタンスにログインするか、インスタンスシステムログを参照して、インスタンスがシャットダウンするようになった原因を検索します。

  • 考えられる原因 2: aws:runInstances アクションに指定されるユーザーデータスクリプトに問題があるか、あるいは正しくない構文がある。ユーザーデータスクリプトの構文を確認します。また、ユーザーデータスクリプトがインスタンスをシャットダウンしていない、あるいはインスタンスをシャットダウンするその他のスクリプトを呼び出していないかも確認します。

アクション固有の失敗リフェレンス

ステップが失敗すると、失敗発生時にどのサービスが呼び出されたかが失敗のメッセージに示されることもあります。次の表は、各アクションによって呼び出されるサービスを一覧表示します。また、この表にはそれぞれのサービスの情報へのリンクも提供しています。

アクション このアクションによって呼び出される AWS のサービス このサービスについての情報 トラブルシューティングのコンテンツ

aws:runInstances

Amazon EC2

Amazon EC2 ユーザーガイド

EC2 インスタンスのトラブルシューティング

aws:changeInstanceState

Amazon EC2

Amazon EC2 ユーザーガイド

EC2 インスタンスのトラブルシューティング

aws:runCommand

Systems Manager

AWS Systems Manager Run Command

Systems Manager Run Command のトラブルシューティング

aws:createImage

Amazon EC2

Amazon Machine Images

aws:createStack

AWS CloudFormation

AWS CloudFormation ユーザーガイド

AWS CloudFormation のトラブルシューティング

aws:deleteStack

AWS CloudFormation

AWS CloudFormation ユーザーガイド

AWS CloudFormation のトラブルシューティング

aws:deleteImage

Amazon EC2

Amazon マシンイメージ

aws:copyImage

Amazon EC2

Amazon Machine Images

aws:createTag

Amazon EC2、Systems Manager

EC2 リソースとタグ

aws:invokeLambdaFunction

AWS Lambda

AWS Lambda デベロッパーガイド

Lambda のトラブルシューティング

自動化サービス内部エラー

エラーメッセージ: Internal Server Error. Please refer to Automation Service Troubleshooting Guide for more diagnosis details.

自動化サービスに関する問題は、特定のランブックが正常に実行されることに影響を及ぼします。この問題を解決するには、 にお問い合わせくださいAWS Support 可能な範囲で、実行 ID とカスタマー ID をご用意ください。

実行は開始するが、タイムアウトになる

エラーメッセージ: Step timed out while step is verifying launched instance(s) are ready to be used. Please refer to Automation Service Troubleshooting Guide for more diagnosis details.

aws:runInstances アクションのステップがタイムアウトになります。これは、ステップで timeoutSeconds に指定された値よりステップアクションの実行に時間がかかる場合に発生します。この問題を解決するには、aws:runInstances アクションで timeoutSeconds パラメータにより長い時間を指定してください。問題が解決しない場合は、ステップが予期される時間より長くかかる原因を診断します。