无法从附加了 IAM 角色的 Windows 服务器下载 CodeDeploy 代理

Unable to download CodeDeploy agent from Windows Server with IAM Role attached

我正在尝试按照 AWS 文档下载 codedeploy:

Install the CodeDeploy agent for Windows Server

为此,我需要 运行 执行以下命令,该命令基本上将文件下载到我所在地区 us-east-1 的临时文件夹中:

powershell.exe -Command Read-S3Object -BucketName aws-codedeploy-us-east-1 -Key latest/codedeploy-agent.msi -File c:\temp\codedeploy-agent.msi

在那个实例上,我附加了一个具有 AmazonS3FullAccess 策略的 IAM 角色。执行命令时出现此错误:

Read-S3Object : No credentials specified or obtained from persisted/shell defaults.

我知道我可以通过添加个人凭据来解决这个问题,但由于这被认为不是一个好的做法,我想下载客户端而不用这种方式处理它。

以防万一有人遇到类似问题。

这是因为我之前将自定义 windows AMI 迁移到不同的 AWS 区域。

实例配置文件元数据服务器指向旧区域服务器。您需要将其更改为指向新区域:

Import-Module (Join-Path $env:ProgramData 'Amazon\EC2-Windows\Launch\Module\Ec2Launch.psd1')
Add-Routes