无法从具有IAM角色的Windows Server下载CodeDeploy代理

问题描述

我正在尝试根据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