【Part 1】SSM Automation runbook referenceを調べてみる

はじめに

AWSの管理サービスであるSystems Managerを使用して手軽に自動化できる「Systems Manager Automation runbook reference」について調べてみました。

どんな自動化ができるのか、サービス別にさらーっと流し見できるページです。

使用できるサービスがこんなにもある

かなり多くのサービスで手軽な自動化が可能なようですね。

かなり多くのリファレンスがある為、Part1では以下のサービスについて簡潔にまとめていきます。

API Gateway
AWS Batch
AWS CloudFormation
CloudFront
CloudTrail
CloudWatch
Amazon DocumentDB
CodeBuild
AWS CodeDeploy
AWS Config
AWS Directory Service
AWS AppSync
Amazon Athena
DynamoDB
Amazon EBS
Amazon EC2

Part2はこちらです。

サービス別に調査

それぞれのタイトル部分がドキュメントのリンクになっていますので、気になったサービスがありましたら調べてみてください。

※補足※
マネコンには「WithApproval」を含むRunbook名が存在しており、それは承認アクションが含まれていることを意味していますが、このリファレンスには、承認が必要なRunbookは含まれていないようです。

例えばこちらの「【SSM Automation ハンズオン】承認者に確認後、EC2を起動する」などが承認アクションが含まれているものです。

API Gateway

1.AWSConfigRemediation-DeleteAPIGatewayStage

Amazon API ゲートウェイステージを削除します。

2.AWSConfigRemediation-EnableAPIGatewayTracing

Amazon API ゲートウェイステージでのトレースが可能になります。

3.AWSConfigRemediation-UpdateAPIGatewayMethodCaching

Amazon API Gateway ステージリソースのキャッシュメソッド設定を更新します。

AWS CloudFormation

4.AWS-DeleteCloudFormationStack

AWS CloudFormation スタックを削除します。

5.AWS-RunCfnLint

AWS CloudFormationリンター ( cfn-python-lint ) を使用して、AWS CloudFormationリソース仕様に対してYAMLおよびJSONテンプレートを検証します。

6.AWSSupport-TroubleshootCFNCustomResource

AWS CloudFormationスタックがカスタムリソースの作成、更新、削除に失敗した理由を診断するのに役立ちます。
カスタムリソースに使用されているサービストークンと、返されたエラーメッセージを確認し、カスタムリソースの詳細を確認すると、カスタムリソースのスタックの動作とトラブルシューティング手順の説明が表示されます。

7.AWS-UpdateCloudFormationStack

Amazon S3バケットに保存されているAWS CloudFormationテンプレートを使用してスタックを更新します。

CloudFront

8.AWSConfigRemediation-EnableCloudFrontDefaultRootObject

指定した Amazon CloudFrontディストリビューションのデフォルトルートオブジェクトを設定します。

9.AWSConfigRemediation-EnableCloudFrontAccessLogs

指定した Amazon CloudFrontディストリビューションのアクセスログを有効にします。

10.AWSConfigRemediation-EnableCloudFrontOriginAccessIdentity

指定した Amazon CloudFrontディストリビューションのオリジンアクセスアイデンティティ(OAI)を有効にします。
この自動化により、CloudFront指定したディストリビューションのOAIなしで、Amazon S3オリジンタイプのすべてのオリジンに同じOAIが割り当てられます。

11.AWSConfigRemediation-EnableCloudFrontOriginFailover

指定したAmazon CloudFrontディストリビューションのオリジンフェイルオーバーを有効にします。

12.AWSConfigRemediation-EnableCloudFrontViewerPolicyHTTPS

指定した Amazon CloudFrontディストリビューションのビューアープロトコルポリシーを有効にします。

CloudTrail

13.AWSConfigRemediation-CreateCloudTrailMultiRegionTrail

AWS CloudTrailを作成し、AWSリージョン複数のログファイルを選択した Amazon S3バケットに配信します。

14.AWS-EnableCloudTrail

AWS CloudTrail証跡を作成し、S3バケットへのログ記録を設定します。

15.AWSConfigRemediation-EnableCloudTrailEncryptionWithKMS

指定したAWS KMSカスタマー管理キーを使用して AWS CloudTrail証跡を暗号化します。

16.AWSConfigRemediation-EnableCloudTrailLogFileValidation

AWS CloudTrailのログファイルの検証を有効にします。

17.AWS-QueryCloudTrailLogs

AWS CloudTrailログを含む、選択した Amazon S3バケットから Amazon Athena テーブルを作成します。 テーブルの作成後、オートメーションは指定したSQLクエリを実行し、テーブルを削除します。

CloudWatch

18.AWS-ConfigureCloudWatchOnEC2Instance

マネージドインスタンスのAmazon CloudWatch詳細モニタリングを有効または無効にします。

CodeBuild

19.AWSConfigRemediation-ConfigureCodeBuildProjectWithKMSCMK

指定した AWS CodeBuildカスタマー管理キーを使用してAWS KMSプロジェクトのビルドアーティファクトを暗号化します。

20.AWSConfigRemediation-DeleteAccessKeysFromCodeBuildProject

指定した AWS CodeBuildプロジェクトから AWS_ACCESS_KEY_ID および AWS_SECRET_ACCESS_KEY 環境変数を削除します。

AWS CodeDeploy

21.AWSSupport-TroubleshootCodeDeploy

Amazon EC2インスタンスでAWS CodeDeploy デプロイが失敗した理由を診断するのに役立ちます。 問題の解決やさらなるトラブルシューティングに役立つ手順が出力され、今後同様の問題を回避するために役立つ CodeDeploy のベスト プラクティスも提供されます。

AWS Config

22.AWSSupport-SetupConfig

IAMサービスにリンクされたロール、AWS Configによって提供される構成レコーダー、および AWS Configが構成スナップショットと構成履歴ファイルを送信するAmazon S3バケットを持つ配信チャネルを作成します。

AggregatorAccountId パラメータと AggregatorAccountRegion パラメータの値を指定すると、複数のAWS アカウントおよび複数のAWSリージョンからAWS Config設定およびコンプライアンスデータを収集するためのデータ集約の承認も作成します。

AWS Directory Service

23.AWS-CreateDSManagementInstance

ディレクトリの管理に使用できるAmazon EC2 Windows インスタンスを作成します。

24.AWSSupport-TroubleshootADConnectorConnectivity

ADコネクタの次の前提条件を確認します。

①必要なトラフィックがAD Connectorに関連付けられているセキュリティグループとACLルールによって許可されているかどうかを確認します。

②AWS Systems Manager、AWS Security Token Service、および Amazon CloudWatch インターフェイスVPCエンドポイントがAD Connectorと同じVPCに存在するかどうかを確認します。

前提条件のチェックが正常に完了すると、ランブックはADコネクタと同じサブネットで 2つのAmazon EC2 Linux t2.micro インスタンスを起動します。
次に、netcatnslookupおよびユーティリティを使用してネットワーク接続テストを実行します。

25.AWSSupport-TroubleshootDirectoryTrust

AWS Managed Microsoft ADと Microsoft Active Directory 間の信頼作成に関する問題を診断します。ディレクトリタイプが信頼関係をサポートしていることが確認され、関連付けられているセキュリティグループのルール、ネットワーク ACL、ルートテーブルの潜在的な接続の問題がチェックされます。

DynamoDB

26.AWS-CreateDynamoDBBackup

Amazon DynamoDB テーブルのバックアップを作成します。

27.AWS-DeleteDynamoDbBackup

Amazon DynamoDB テーブルのバックアップを削除します。

28.AWSConfigRemediation-DeleteDynamoDbTable

指定した Amazon DynamoDBテーブルを削除します。

29.AWS-DeleteDynamoDbTableBackups

保持日数またはカウントに基づいて DynamoDB テーブルのバックアップを削除します。

30.AWSConfigRemediation-EnableEncryptionOnDynamoDBTable

KMSKeyIdパラメーターに指定したAWS KMSカスタマー管理キーを使用して、DynamoDBテーブルを暗号化します。

31.AWSConfigRemediation-EnablePITRForDynamoDbTable

指定した Amazon DynamoDB テーブルでポイントインタイムリカバリ(PITR)を有効にします。

32.AWS-RestoreDynamoDBTable

ポイントインタイムリカバリ (PITR) を使用して、指定したAmazon DynamoDBテーブルを復元します。

Amazon EBS

33.AWSSupport-AnalyzeEBSResourceUsage

Amazon EBSのリソース使用状況を分析するために使用されます。ボリュームの使用状況を分析し、特定の AWS リージョンで放棄されたボリューム、イメージ、スナップショットを特定します。

34.AWS-ArchiveEBSSnapshots

スナップショットに適用したタグを指定することで、Amazon EBSボリュームのスナップショットをアーカイブするのに役立ちます。 または、スナップショットにタグが付けられていない場合は、ボリュームのIDを指定することもできます。

35.AWS-AttachEBSVolume

Amazon EBSボリュームをAmazon EC2インスタンスにアタッチします。

36.AWSSupport-CalculateEBSPerformanceMetrics

Amazon CloudWatchに発行されるメトリクスを計算し、個々のAmazon EBSボリュームの平均I/Oサイズ、合計スループットと IOPS を表示するCloudWatchダッシュボードを作成することで、Amazon EBSのパフォーマンスの問題を診断するのに役立ちます。

37.AWS-CopySnapshot

Amazon EBSボリュームのポイントインタイムスナップショットをコピーします。

38.AWS-CreateSnapshot

Amazon EBS ボリュームのスナップショットを作成します。

39.AWS-DeleteSnapshot

Amazon EBS ボリュームのスナップショットを削除します。

40.AWSConfigRemediation-DeleteUnusedEBSVolume

未使用のAmazon EBSボリュームを削除します。

41.AWS-DeregisterAMIs

AMI に適用したタグを指定することで、AMIの登録を解除するのに役立ちます。

42.AWS-DetachEBSVolume

Amazon EBSボリュームをAmazon EC2インスタンスから接続解除します。

43.AWSConfigRemediation-EnableEbsEncryptionByDefault

自動化を実行するAWSアカウントおよびAWSリージョン内のすべての新しいAmazon EBSボリュームの暗号化を有効にします。

44.AWS-ExtendEBSVolume

Amazon EBSボリュームのサイズを増やし、ファイル システムを拡張します。
この自動化は、xfs および ext4 ファイル システムをサポートします。

45.AWSSupport-ModifyEBSSnapshotPermission

複数のAmazon EBSスナップショットのアクセス許可を変更するのに役立ちます。
スナップショットをパブリックまたはプライベートに作成し、他のAWSアカウントと共有できます。

46.AWSConfigRemediation-ModifyEBSVolumeType

Amazon EBSボリュームのボリューム タイプを変更します。
ボリュームタイプが変更されると、ボリュームは最適化状態になります。

Amazon EC2

47.AWS-ASGEnterStandby

Auto Scaling グループのAmazon EC2インスタンスのスタンバイ状態を変更します。

48.AWS-ASGExitStandby

Auto ScalingグループのAmazon EC2インスタンスのスタンバイ状態を変更します。

49.AWS-CreateImage

Amazon EC2インスタンスから新しい AMIを作成します。

50.AWS-DeleteImage

AMIと関連するすべてのスナップショットを削除します。

51.AWS-PatchAsgInstance

Amazon EC2インスタンスにパッチを適用します。

52.AWS-PatchInstanceWithRollback

EC2 インスタンスを該当するパッチ ベースラインに準拠させます。 障害時にルート ボリュームをロールバックします。

53.AWS-QuarantineEC2Instance

インバウンドまたはアウトバウンドのトラフィックを許可しないAmazon EC2インスタンスにセキュリティグループを割り当てることができます。

54.AWS-ResizeInstance

Amazon EC2インスタンスのインスタンスタイプを変更します。

55.AWS-RestartEC2Instance

Amazon EC2インスタンスを再起動します。

56.AWS-SetupJupyter

Amazon EC2インスタンスでJupyter Notebookをセットアップするのに役立ちます。既存のインスタンスを指定することも、自動化にAMI ID を指定して新しいインスタンスを起動してセットアップすることもできます。

57.AWS-StartEC2Instance

1つ以上のAmazon EC2インスタンスを開始します。

58.AWS-StopEC2Instance

1つ以上のAmazon EC2インスタンスを停止します。

59.AWS-TerminateEC2Instance

1つ以上のAmazon EC2インスタンスを終了します。

60.AWS-UpdateLinuxAmi

LinuxディストリビューションパッケージとAmazonソフトウェアを使用して AMIを更新します。

61.AWS-UpdateWindowsAmi

Microsoft Windows AMIを更新します。デフォルトでは、すべての Windowsアップデート、Amazonソフトウェア、およびAmazonドライバーをインストールします。次に、Sysprepを実行して新しいAMIを作成します。

62.AWSConfigRemediation-EnableAutoScalingGroupELBHealthCheck

指定した Amazon EC2 Auto Scaling グループのヘルスチェックを有効にします。

63.AWSConfigRemediation-EnforceEC2InstanceIMDSv2

インスタンス メタデータ サービス バージョン2(IMDSv2) を使用するために指定したAmazon EC2インスタンスが必要です。

64.AWSEC2-CloneInstanceAndUpgradeSQLServer

SQL Server 2008以降を実行している Windows ServerのEC2インスタンスからAMIを作成し、そのAMIを新しいバージョンのSQL Serverにアップグレードします。

65.AWSEC2-CloneInstanceAndUpgradeWindows

Windows Server 2008 R2、2012 R2、2016、または 2019 インスタンスから AMIを作成し、AMIをWindows Server 2012 R2、2016、2019、または2022にアップグレードします。サポートされているアップグレードパスは次のとおりです。

66.AWSEC2-ConfigureSTIG

インスタンスにセキュリティ技術実装ガイド (STIG) 設定を適用できます。STIG標準に準拠したイメージを迅速に構築するのに役立ちます。

※セキュリティ技術実装ガイド (STIG) は、情報システムとソフトウェアを保護するために国防情報システム局 (DISA) が作成した構成強化基準です。システムをSTIG標準に準拠させるには、さまざまなセキュリティ設定をインストール、設定、およびテストする必要があります。

67.AWSEC2-PatchLoadBalancerInstance

任意のロードバランサー (クラシック、ALB、NLB) に接続されている Amazon EC2インスタンス(Windows または Linux) のマイナーバージョンをアップグレードしてパッチを適用します。

68.AWSEC2-SQLServerDBRestore

Amazon S3に保存されている Microsoft SQL Server データベースのバックアップを、EC2 Linux インスタンスで実行されているSQL Server 2017に復元します。

69.AWSSupport-ActivateWindowsWithAmazonLicense

Amazonから提供されたライセンスを使用してAmazon EC2インスタンスをアクティベートします。必要なキー管理サービスのオペレーティングシステム設定を検証して設定し、アクティベーションを試行します。

70.AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2

Amazon EC2インスタンスまたはエラスティックネットワークインターフェイスからエンドポイントへの接続を分析します。Runbook は、ServiceEndpointパラメーターに指定した値を使用してエンドポイントへの接続を分析します。

71.AWSPremiumSupport-ChangeInstanceTypeIntelToAMD

Amazon EC2インスタンスから同等の AMD 搭載インスタンスタイプへの移行を自動化します。

72.AWSSupport-CheckXenToNitroMigrationRequirements

Amazon EC2インスタンスが、インスタンスタイプをXenタイプのインスタンスからNitroベースのインスタンスタイプに正常に変更するための前提条件を満たしていることを確認します。

73.AWSSupport-ConfigureEC2Metadata

Amazon EC2インスタンスのインスタンスメタデータサービス (IMDS) オプションを設定するのに役立ちます。

74.AWSSupport-CopyEC2Instance

Knowledge Centerの記事「EC2インスタンスを別のサブネット、アベイラビリティーゾーン、またはVPCに移動する方法を教えてください」に記載されている手順を自動化する方法が記載されています。

75.AWSSupport-ExecuteEC2Rescue

EC2Rescueこのツールを使用して Linux 用または特定の Amazon EC2インスタンスに関する一般的な接続問題をトラブルシューティングし、可能な場合は修復します。

76.AWSSupport-ListEC2Resources

指定した Amazon EC2インスタンスと Amazon EBSボリューム、Elastic IP アドレス、Amazon EC2 Auto Scaling グループなどの関連リソースに関する情報を返します。

77.AWSSupport-ManageRDPSettings

ユーザーはRDPポートやネットワーク層認証 (NLA) などの一般的なリモートデスクトッププロトコル (RDP) 設定を管理できます。

78.AWSSupport-ManageWindowsService

ターゲットインスタンスの Windows サービスを停止、開始、再起動、一時停止、または無効にすることができます。

79.AWSSupport-MigrateEC2ClassicToVPC

Amazon EC2インスタンスを EC2-Classic からVPCに移行します。

80.AWSSupport-MigrateXenToNitroLinux

Amazon EC2 Linux Xenインスタンスをクローニング、準備、およびインスタンスタイプに移行します。

81.AWSSupport-ResetAccess

指定されたEC2インスタンスの EC2Rescueツールを使用しながら、EC2 コンソール (Windows) を通じたパスワードの復号を再度有効にするか、新しいSSHキーペア (Linux) を生成して追加します。
キーペアを紛失した場合、この自動化により、ユーザーが所有するキーペア (Windows) で新しいEC2インスタンスを起動するために使用できるパスワード対応のAMIが作成されます。

82.AWSSupport-ResetLinuxUserPassword

ローカルオペレーティングシステム (OS) ユーザーのパスワードをリセットするのに役立ちます。

83.AWSPremiumSupport-ResizeNitroInstance

Nitroシステム上に構築されたAmazon EC2インスタンスのサイズ変更を自動化するソリューションが用意されています。

84.AWSSupport-RestoreEC2InstanceFromSnapshot

ルートボリュームの動作中のAmazon EBSスナップショットからAmazon EC2インスタンスを識別して復元するのに役立ちます。

85.AWSSupport-SendLogBundleToS3Bucket

EC2Rescueツールによって生成されたログバンドルをターゲットインスタンスから指定されたS3バケットにアップロードします。このランブックは、EC2Rescueのプラットフォーム固有のバージョンを、ターゲットインスタンスのプラットフォームに対応してインストールします。EC2Rescueを使用して、使用可能なすべてのオペレーティングシステム (OS) ログを収集します。

86.AWSSupport-StartEC2RescueWorkflow

提供されているbase64でエンコードされたスクリプト(Bash または Powershell) を、インスタンスをレスキューするために作成されたヘルパーインスタンス上で実行します。
インスタンスのルートボリュームは、EC2Rescueインスタンスとも呼ばれるヘルパーインスタンスにアタッチおよびマウントされます。

87.AWSPremiumSupport-TroubleshootEC2DiskUsage

Amazon EC2インスタンスのルートディスクと非ルートディスクの使用に関する問題を調査し、場合によっては修正するのに役立ちます。可能であれば、ランブックはボリュームとそのファイルシステムを拡張して問題の修復を試みます。

88.AWSSupport-TroubleshootRDP

RDP ポート、ネットワーク層認証 (NLA)、Windowsファイアウォールプロファイルなど、リモートデスクトッププロトコル (RDP) 接続に影響を与える可能性のあるターゲットインスタンスの共通設定を確認または変更できます。

89.AWSSupport-TroubleshootSSH

Linux用のAmazon EC2Rescueツールをインストールし、そのEC2Rescueツールを使用して、Linuxマシンへの SSH経由でのリモートからの接続を妨げる、一般的な問題を確認しその修正を試みます。

90.AWSSupport-TroubleshootSUSERegistration

Amazon EC2 SUSE Linux Enterprise ServerインスタンスをSUSEアップデートインフラストラクチャに登録できない理由を特定するのに役立ちます。

自動化出力には、問題を解決する手順が記載されているか、トラブルシューティングに役立ちます。自動化中にインスタンスがすべてのチェックに合格した場合、そのインスタンスはSUSE Update Infrastructureに登録されます。

91.AWSSupport-UpgradeWindowsAWSDrivers

指定したEC2 AWSインスタンスのストレージドライバーとネットワークドライバーをアップグレードまたは修復します。RunbookはSSM Agentを呼び出して、AWS最新バージョンのドライバーをオンラインでインストールしようとします。
Runbook は、SSMエージェントを呼び出して、AWSドライバーの最新バージョンをオンラインでインストールしようとします。SSMエージェントに接続できない場合、明示的に要求された場合、RunbookはAWSドライバーのオフラインインストールを実行できます。

Part1はここで終了

まだ半分くらいだと思いますが、91個もランブックがありました。(まとめるの大変…)
簡単に使用できそうなものから、若干複雑なものまで様々ですね。
そしてやはりEC2関連が多い。
自動化に使えそうなものは有効活用していくと、運用が楽になりそうです!

Part2はこちらですので、よかったらさら~っと見てみてくださいね。

Last modified: 2024-01-04

Author