Windows作成時に、ユーザ作成してパスワードを設定するメモ
SSMセッションマネージャが利用できる状態にする
- EC2からインターネットへ接続できる(もしくはVPCEndpointを設定)
- EC2用IAMロール
以下のポリシーを設定する
AmazonSSMManagedInstanceCore
/ssm:GetParameter
- AMIイメージはSSMAgentが入っているものを利用する
(最近のAWS提供イメージにはSSMAgentは入っていて自動サービス起動される)
パスワードをパラメータストアに設定する
- SSMパラメータストアにパスワード文字列を設定する
例えば・・・ Key:/ec2/passwordkey
Value:initpasswordhogehoge
SecureStringで保存
UserData
<powershell>
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi /qn
$PASS=convertto-securestring $(aws ssm get-parameter --name /ec2/passwordkey --with-decryption --region ap-northeast-1 --query Parameter.Value --output text) -AsPlainText -Force
New-LocalUser -Name test -Password $PASS
Add-LocalGroupMember -Group 'Administrators' -Member 'test'
</powershell>
解説
1. AWS CLIのインストール
PowerShell版のAWSCLIがインストールされているが、AWSCLIの方が楽なのでインストールした
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi /qn
2. パスワードを変数に格納
2-1. aws ssm get-parameter
でパラメータストアから内容取得して、Parameter.Value
(パスワード文字列)部分を取得する
2-2. convertto-securestring
PowershellのSecureString変換コマンドを実施
$PASS=convertto-securestring $(aws ssm get-parameter --name /ec2/passwordkey --with-decryption --region ap-northeast-1 --query Parameter.Value --output text) -AsPlainText -Force
3. 新規ユーザ”test”を作成して、パスワードをセット
New-LocalUser -Name test -Password $PASS
4. ユーザ"test"を Administratorsグループにセット
Add-LocalGroupMember -Group 'Administrators' -Member 'test'