AWS:在CodeDeploy步骤期间访问EC2 Windows密码

时间:2016-04-04 11:41:05

标签: windows amazon-web-services amazon-ec2 aws-code-deploy

在AWS应用程序代码部署的afterinstall步骤中,我想安装一些Windows本地服务。我使用nssm这样做,但在某些时候我需要使用本地管理员帐户安装该服务。 不幸的是,我找不到在环境变量中获取Windows密码或以自动方式使用命令行的方法。有什么想法吗?

谢谢! 灵光

1 个答案:

答案 0 :(得分:1)

我们通过在S3上保护属性文件,然后在实例启动时或以后在CodeDeploy生命周期钩子中下载和解析该文件,解决了保护Windows和相关应用程序凭据以在安装/自动化进程中使用的问题

例如在名为 s3://credentials-example-com/example.properties 的S3存储桶中:

WindowsAdminPassword=testing

您可以根据需要下载解析它。在此示例中,我将所有值解析为环境变量:

@echo off
rem Get credentials file from S3 and parse
echo Get credentials
if not exist c:\temp mkdir c:\temp
aws s3 cp s3://credentials-example-com/example.properties c:\temp
@echo off
FOR /F "tokens=1,2 delims==" %%G IN (c:\temp\example.properties) DO (
        echo.%%G|findstr "#" >nul 2>&1
        if errorlevel 1 (
                echo Setting %%G
                setx /m example_%%G %%H
                set example_%%G=%%H
        )
)
echo Done

如果您使用SETX将Windows管理员密码解析到环境中,可能会产生安全隐患 - 但是出于您的目的,如果您使用简单的SET,该变量将仅保留现有的shell。< / p>