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

AWS: access EC2 Windows password during CodeDeploy steps

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

谢谢! 伊曼纽尔

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

例如在名为 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.