この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
ウィスキー、シガー、パイプをこよなく愛する大栗です。
本日EC2 Run Commandで選択できるコマンドが増えたので内容を確認してみました。
何がEC2 Run Commandに追加されたの?
まずEC2 Run Commandについては、以下の記事を御覧ください。
【新機能】EC2に任意のコマンドを実行できるボタン「Run Command」が追加(まだWindowsだけ)
【新機能】EC2に任意のコマンドを実行できるボタン「Run Command」がついにLinuxにも追加
今回追加されたコマンドはWindowsインスタンスに対するもので、インベントリ情報の収集とオンデマンドのパッチ適用ができるようになりました。
- インベントリ情報の収集(AWS-ListWindowsInventory)
OSのバージョン、言語、詳細
インストールされているアプリケーション
インストールされているOSアップデート -
オンデマンドのパッチ適用
- インスタンスをスキャンして不足しているアップデートを確認する(AWS-FindWindowsUpdates)
- インスタンスに特定の更新プログラムをインストールする(AWS-InstallSpecificWindowsUpdates)
- インスタンスに不足している更新プログラムをインストールする(AWS-InstallMissingWindowsUpdates)
実際に試します
EC2の準備
今回追加されたコマンドはWindows用なのでWindowsのEC2インスタンスを起動します。2016年4月5日現在東京リージョンでWindows Server 2012 R2の日本語版AMIには以下の3種類があります。
- Windows_Server-2012-R2_RTM-Japanese-64Bit-Base-2016.01.25(ami-6dbb8203)
- Windows_Server-2012-R2_RTM-Japanese-64Bit-Base-2016.02.10(ami-36bfbb58)
- Windows_Server-2012-R2_RTM-Japanese-64Bit-Base-2016.03.09(ami-58282636)
最新のアップデートが当たっていない物が欲しいため、一番古いWindows_Server-2012-R2_RTM-Japanese-64Bit-Base-2016.01.25(ami-6dbb8203)
を起動します。
コマンドを実行する
[EC2]-[コマンド]の画面でコマンドを実行
をクリックしてRun Commandを実行していきいます。
インベントリ情報の収集
まずはインベントリ情報の収集を行います。
コマンドのドキュメントでAWS-ListWindowsInventory
を選択します。ターゲットインスタンスで準備したEC2インスタンスを指定します。
様々な情報を取得するため各パラメータを以下の様に選択しました。
パラメータ | 設定値 | 備考 |
---|---|---|
List OS Information | true | OS情報の一覧 |
List Installed Applications | true | インストールされているアプリケーションの一覧 |
List Installed Updates | true | インストールされているOSアップデートの一覧 |
タイムアウトはデフォルトの600秒、出力結果を保存するS3バケットを指定します。一番下には、CLIで実行するためのコマンドも表示されます。
実行するとコマンドの状態がPending
となるので、実行完了まで待ちます。
コマンドの状態がSuccess
になって実行が完了したら実行結果がS3バケットに保存されるので確認します。
実行結果の保存先は、Prefixを指定していないので <指定したS3バケット>/<コマンドID>/<インスタンスID>/awsrunPowerShellScript/stdout.txt となっています。
結果はリンク先のようになります。
OSの詳細情報(Get-OSInventory)やインストールされているアプリケーション(Get-AppInventory)、インストールされているOSアップデート(Get-PatchInventory)が確認できます。
Get-OSInventory - WIN-H615HFCID8U - 2016-04-04T22:18:39Z
Schema: 1.0
Publisher: Microsoft Corporation
OSName: Microsoft Windows Server 2012 R2 Standard
OSVersion: 6.3.9600
ExtendedProperties:
Key: ServicePackLevel
Value: null
Key: OSArchitecture
Value: 64 ビット
Key: OSLanguageId
Value: 1041
Key: OSLanguage
Value: 日本語 (日本)
Key: ProductType
Value: 3
Key: OperatingSystemSKU
Value: 7
Key: OperatingSystemSKUName
Value: Standard Server Edition
Get-AppInventory - WIN-H615HFCID8U - 2016-04-04T22:18:41Z
Schema: 1.0
InstalledApplications:
Name: AWS PV Drivers
Version: 7.3.2
Publisher: Amazon Web Services
InstalledOn: 2015-08-13T00:00:00Z
InstallLocation: null
Name: aws-cfn-bootstrap
Version: 1.4.10
Publisher: Amazon Web Services
InstalledOn: 2015-08-13T00:00:00Z
InstallLocation: null
Name: EC2ConfigService
Version: 3.12.649.0
Publisher: Amazon Web Services
InstalledOn: 2016-01-13T00:00:00Z
InstallLocation: null
Get-PatchInventory - WIN-H615HFCID8U - 2016-04-04T22:18:42Z
Schema: 1.0
Patches:
HotFixId: KB3121212
Description: Security Update
InstalledOn: 2016-01-13T00:00:00Z
InstalledBy: NT AUTHORITY\SYSTEM
・
・
・
オンデマンドのパッチ適用
次はオンデマンドのパッチ適用を行ってみます。
アップデートの確認(AWS-FindWindowsUpdates)
アップデートの確認を行います。
コマンドのドキュメントでAWS-FindWindowsUpdates
を選択します。ターゲットインスタンスで準備したEC2インスタンスを指定します。
確認対象のアップデートのレベルを指定するUpdate LevelではImportant
を選択しました。タイムアウトはデフォルトの600秒、出力結果を保存するS3バケットを指定します。
実行するとFailedになってしまいました。
出力結果を確認すると、以下の様に表示されています。EC2Configのバージョンが古いようなのでAWS-UpdateEC2Config
を実行した後に、再度実行します。
CheckEC2ConfigVersion : This command requires EC2Config version 3.14.786 or hig
her. Please run the command AWS-UpdateEC2Config to update EC2Config and try aga
in.
発生場所 C:\ProgramData\Amazon\Ec2Config\Downloads\aws_psModule\owhhtvgm.nh4.ps
1:83 文字:9
+ CheckEC2ConfigVersion
+ ~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorExcep
tion
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorExceptio
n,CheckEC2ConfigVersion
Importantで実行した結果は、リンク先の様になりました。Important Updateは合計19個になっています。
パッチレベル | 個数 |
---|---|
ImportantUpdates | 19 |
Critical | 2 |
Important | 14 |
Moderate | 1 |
Low | 0 |
Unspecified | 2 |
OptionalUpdates | 0 |
TotalUpdates | 19 |
WIN-H615HFCID8U - PatchNow Assessment Results - 2016-04-05T02:38:35.873
Important Updates: 19
Critical: 2
Important: 14
Moderate: 1
Low: 0
Unspecified: 2
Optional Updates: 0
Total Updates: 19
Critical
3137513 3140735
Important
3126593 3133043 3127226 3134222 3122654 3126041 3126434 3126446 3126587 3139940 3139398 3139852 3139914 3135994
Moderate
3139929
Unspecified (Important)
890830 3138615
KBArticleId : 3137513
Name : Windows Server 2012 R2 用セキュリティ更新プログラム (KB31
37513)
Id : c0ba6312-2528-49c9-9282-adee07e5a3b8
ReleaseDate : 2016/03/08 0:00:00 +00:00
Severity : Critical
Category : PatchNow.Implementations.UpdateCategory
CategoryName : Security Updates
IsDownloaded : False
IsInstalled : False
Size : 5762
RebootRequired : False
EulaAccepted : True
CanRequestUserInput : False
SecurityBulletinIds : {MS16-028}
SupersededUpdateIds : {128ff4a5-520a-4af2-a59b-04e8315dfb36, 10f82031-e091-4470
-8b6b-402c49fa456b}
Identity : System.__ComObject
HResult : 0
Description : Microsoft ソフトウェア製品に、ユーザーのシステムに影響を与え
る可能性があるセキュリティ問題が発見されました。この更新プ
ログラムをインストールすると、お使いのシステムを保護できま
す。この更新プログラムの対象となる問題の完全な一覧について
は、関連するサポート技術情報を参照してください。インストール
後には、システムの再起動が必要になる場合があります。
IsImportant : True
・
・
・
特定の更新プログラムをインストール(AWS-InstallSpecificWindowsUpdates)
次に特定アップデートをインストールします。
コマンドのドキュメントでAWS-FindWindowsUpdates
を選択します。ターゲットインスタンスで準備したEC2インスタンスを指定します。
ここでは、先ほど確認した時にCriticalとして表示されていた「3137513」と「3140735」をカンマで繋いで指定します。
タイムアウトはデフォルトの600秒、出力結果を保存するS3バケットを指定します。
実行結果は以下の通りとなり、Criticalの「3137513」と「3140735」がインストールされました
WIN-H615HFCID8U - PatchNow Installation Results - 2016-04-05T03:00:24.923
Important Updates: 2
Critical: 2
Important: 0
Moderate: 0
Low: 0
Unspecified: 0
Optional Updates: 0
Total Updates: 2
KbArticleId Installed Message
----------- ----------- -----------
3137513 Yes Success
3140735 Yes Success
KBArticleId : 3137513
Name : Windows Server 2012 R2 用セキュリティ更新プログラム (KB31
37513)
Id : c0ba6312-2528-49c9-9282-adee07e5a3b8
ReleaseDate : 2016/03/08 0:00:00 +00:00
Severity : Critical
Category : PatchNow.Implementations.UpdateCategory
CategoryName : Security Updates
IsDownloaded : True
IsInstalled : True
Size : 5762
RebootRequired : False
EulaAccepted : True
CanRequestUserInput : False
SecurityBulletinIds :
SupersededUpdateIds :
Identity :
HResult : 0
Description : Microsoft ソフトウェア製品に、ユーザーのシステムに影響を与え
る可能性があるセキュリティ問題が発見されました。この更新プ
ログラムをインストールすると、お使いのシステムを保護できま
す。この更新プログラムの対象となる問題の完全な一覧について
は、関連するサポート技術情報を参照してください。インストール
後には、システムの再起動が必要になる場合があります。
IsImportant : True
KBArticleId : 3140735
Name : Windows Server 2012 R2 用セキュリティ更新プログラム (KB31
40735)
Id : 18c3ca8c-b318-4604-9e36-6c62b80a23d5
ReleaseDate : 2016/03/08 0:00:00 +00:00
Severity : Critical
Category : PatchNow.Implementations.UpdateCategory
CategoryName : Security Updates
IsDownloaded : True
IsInstalled : True
Size : 465
RebootRequired : True
EulaAccepted : True
CanRequestUserInput : False
SecurityBulletinIds :
SupersededUpdateIds :
Identity :
HResult : 0
Description : Microsoft ソフトウェア製品に、ユーザーのシステムに影響を与え
る可能性があるセキュリティ問題が発見されました。この更新プ
ログラムをインストールすると、お使いのシステムを保護できま
す。この更新プログラムの対象となる問題の完全な一覧について
は、関連するサポート技術情報を参照してください。インストール
後には、システムの再起動が必要になる場合があります。
IsImportant : True
もう一度AWS-FindWindowsUpdates
で確認すると、以下の通りCriticalが0件となっています。
WIN-H615HFCID8U - PatchNow Assessment Results - 2016-04-05T03:06:28.883
Important Updates: 17
Critical: 0
Important: 14
Moderate: 1
Low: 0
Unspecified: 2
Optional Updates: 0
Total Updates: 17
Important
3126593 3133043 3127226 3134222 3122654 3126041 3126434 3126446 3126587 3139940 3139398 3139852 3139914 3135994
Moderate
3139929
Unspecified (Important)
890830 3138615
・
・
・
不足している更新プログラムをインストール(AWS-InstallMissingWindowsUpdates)
最後に不足しているアップデートを全てインストールします。
コマンドのドキュメントでAWS-InstallMissingWindowsUpdates
を選択します。ターゲットインスタンスで準備したEC2インスタンスを指定します。
インストール対象のアップデートのレベルを指定するUpdate LevelではImportant
を選択しました。Exclude Kb Article Ids
を入力することでインストール対象から除外することができます。
タイムアウトはデフォルトの600秒、出力結果を保存するS3バケットを指定します。
実行結果はリンク先の様になります。不足していたアップデートを全て適用しました。
WIN-H615HFCID8U - PatchNow Installation Results - 2016-04-05T03:27:43.287
Important Updates: 17
Critical: 0
Important: 14
Moderate: 1
Low: 0
Unspecified: 2
Optional Updates: 0
Total Updates: 17
KbArticleId Installed Message
----------- ----------- -----------
3126593 Yes Success
3133043 Yes Success
3127226 Yes Success
3134222 Yes Success
3122654 Yes Success
3126041 Yes Success
3126434 Yes Success
3126446 Yes Success
3126587 Yes Success
3139940 Yes Success
3139398 Yes Success
3139852 Yes Success
3139914 Yes Success
3135994 Yes Success
3139929 Yes Success
890830 Yes Success
3138615 Yes Success
KBArticleId : 3126593
Name : Windows Server 2012 R2 用セキュリティ更新プログラム (KB31
26593)
Id : 3ce61d87-7153-4540-a74b-fd0065edfdde
ReleaseDate : 2016/02/09 0:00:00 +00:00
Severity : Important
Category : PatchNow.Implementations.UpdateCategory
CategoryName : Security Updates
IsDownloaded : True
IsInstalled : True
Size : 8587
RebootRequired : True
EulaAccepted : True
CanRequestUserInput : False
SecurityBulletinIds :
SupersededUpdateIds :
Identity :
HResult : 0
Description : Microsoft ソフトウェア製品に、ユーザーのシステムに影響を与え
る可能性があるセキュリティ問題が発見されました。この更新プ
ログラムをインストールすると、お使いのシステムを保護できま
す。この更新プログラムの対象となる問題の完全な一覧について
は、関連するサポート技術情報を参照してください。インストール
後には、システムの再起動が必要になる場合があります。
IsImportant : True
・
・
・
念のためAWS-FindWindowsUpdates
でも確認しましょう。
確認結果は以下の通りImportantでは対象のアップデートが無くなりました。
WIN-H615HFCID8U - PatchNow Assessment Results - 2016-04-05T03:33:01.655
Important Updates: 0
Critical: 0
Important: 0
Moderate: 0
Low: 0
Unspecified: 0
Optional Updates: 0
Total Updates: 0
さいごに
WindowsインスタンスのOS情報や面倒なWindowsのパッチ適用をRun Commandから実行できるようになりました。全てカスタムなスクリプトを作成すれば操作可能なのですが、事前定義コマンドが増えるとOSレイヤ以上の管理がAWSと統合できて管理が楽になりますね。
ただし、セキュリティについては注意が必要です。以前はAWSインフラとOSの中のセキュリティを分けて考えることができましたが、AWSからOS内部の操作が可能になっているのでIAMの権限分離などに検討が必要になります。ご注意ください。
それと、Linux版SSM Agentのソースがgithubで公開されました。ライセンスはAmazon Software Licenseとなっており、利用できる環境は「Amazon.com及びAmazon Web Services Inc.を含む関連会社が提供するウェブサービス、コンピュータ・プラットフォームまたはアプリケーション」となっているのでAWS上で使用しましょう。