こんにちは、SRE2課の松井(紀)です。
最近オライリー・ジャパンのSREを読んでいまして、重要なタスクに注力するためにトイルを撲滅せよ、という記述を読みました。
「トイルとは、手作業、繰り返される、自動化が可能、戦術的、長期的な価値がない、サービスの成長に比例して増加する、といった特徴を持つ作業です。」
トイルの洗い出し、測定、削減によって運用コストを削減でき、困難ながらも興味深いプロジェクトに専念する時間を確保できます。 https://cloud.google.com/blog/ja/products/gcp/identifying-and-tracking-toil-using-sre-principles
自分の業務の中で改善できるトイルがあったので、簡単な内容ですがブログ化しました。
はじめに
Windows OSにさくっとユーザーを作りたいこと、よくありますよね。これがお客様環境の場合、ユーザー作成依頼をしたり、仮パスワードを発行してもらい別途変更をかけるなどなど手間がかかります。
今回は、AWS Systems Manager Run Command(以下Run command)を用いてWindowsOSにユーザーを作成する方法を紹介します。
こちらを利用することで、Run command実行可能な環境であればOSにログインすることなく新規のユーザー作成が出来るようになり余計なやり取りを省略することが出来ます。
環境
- マネージドインスタンスであること
AWS Systems Managerの接続方法や概要は以下ブログを参照してください。
- Microsoft Windows Server 2019 Base - ami-0c068f008ea2bdaa1
やりたいこと
- ユーザー(test01,02)を作成する
- Administratorグループに所属させる
- パスワードを無期限に設定する
- 設定したパスワードはコマンド履歴で残らないようにする
作業手順
AWS Systems Manager Parameter Storeにパスフレーズを保存
Run commandに直接パスフレーズを打ち込むとコマンド履歴にパスワードが残ってしまい、本来知らせたくないユーザーにパスワードが知られることとなります。
今回はSystems Manager Parameter Store(以下Parameter Store)にパスワードを格納し、そちらを参照させる方法でRun commandを実行します。
[パラメータストア]-[パラメータの作成]を選択します
任意の名前を設定し、[値]欄にパスフレーズを入力します。
なお、Run CommandでSecure Stringの参照がサポートされていないのでKMSによる暗号化は対応しておりません。
test02についても同様に作成します。
Run commandを実行
[Run command]-[コマンドを実行]を選択し、コマンドドキュメントで[AWS-RunPowerShellScript]を選択します。
コマンドのパラメータに以下コマンドを入力します
## Get passwords from Systems Manager Parameter Store $password01 = "{{ssm:test01}}" $password02 = "{{ssm:test02}}" ## create test01 Start-Process -FilePath "net" -ArgumentList "user test01 $password01 /add /logonpasswordchg:no" -Verb runAs Start-Process -FilePath "net" -ArgumentList "localgroup administrators test01 /add" -Verb runAs wmic useraccount where "Name='test01'" set PasswordExpires=FALSE ## create test02 Start-Process -FilePath "net" -ArgumentList "user test02 $password02 /add /logonpasswordchg:no" -Verb runAs Start-Process -FilePath "net" -ArgumentList "localgroup administrators test02 /add" -Verb runAs wmic useraccount where "Name='test02'" set PasswordExpires=FALSE
{{ssm:parameter-name}}と指定することで、さきほど設定したパスフレーズをWindowsOS上で参照することが出来ます。
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/systems-manager-parameter-store.html
対象となるインスタンスを選択します
今回はロギングやSNS通知は設定していません。
実行をクリックすると、設定したコマンドが実行されます
コマンドのステータスが成功となれば作業は終了です。エラーとなる場合はエラー内容など確認してください。
結果確認
WindowsOS上で2ユーザー作成出来たことを確認出来ました。 Administratorグループへの所属、パスワード無期限の設定も出来ていますね。
コマンド履歴を確認すると、設定したパスワードが平文で残っておらず変数に格納されて処理されています。
Parameter Storeの削除
さきほど入力したパスフレーズは忘れずに削除してください。これでAWS上にパスワード情報は残りません。
さいごに
今回は、Run commandでWindowsOSにユーザーを作成する方法を紹介しました。
誰かのお役に建てれば幸いです。
またお会いしましょう。
松井 紀樹(記事一覧)
CS5課課長1年目
オンプレサーバーの修理屋からAWSのインフラ構築へジョブチェンジ
2024 Japan AWS All Certifications Engineers
筋トレとサウナが趣味。大胸筋が歩いてる