Powershell脚本可以在一个AWS EC2实例上运行,但不能在另一个实例上运行.两者使用相同的IAM角色



我有一个简单的Powershell脚本来将文件上传到S3。我有两个EC2实例使用相同的IAM配置文件。实例和S3 bucket都位于同一个AWS帐户中。

我将RDP放入一个实例中,以管理员身份打开Powershell提示符,脚本就可以工作了。RDP到另一个实例,以管理员身份打开Powershell提示符,脚本失败,并显示:Write-S3Object:Access Denied

要检查网络/路由,两个实例都可以打开浏览器并上网。我假设用于运行的凭据是从分配给实例的角色中假设的?

如果重要的话,这是ps1脚本(访问点模糊(:

$ArtifactFile = "c:tempjunk1.txt" 
$S3BucketAP = "arn:aws:s3:us-east-1:1234567890:accesspoint/my-s3-ap" 
$Key = "Junk/junk1.txt" 
Write-S3Object -BucketName $S3BucketAP -Key $Key -File $ArtifactFile

这是错误信息:

Write-S3Object : Access Denied
At C:temptest1.ps1:4 char:1
Write-S3Object -BucketName $S3BucketAP -Key $Key -File $ArtifactFile
+ CategoryInfo          : NotSpecified: (:) [Write-S3Object], AmazonS3Exception
+ FullyQualifiedErrorId : 
Amazon.S3.AmazonS3Exception,Amazon.PowerShell.Cmdlets.S3.WriteS3ObjectCmdlet

我还可以在哪里进行调试?

在reddit上,有人建议我查看环境变量,这让我考虑检查任何配置文件。当我丢弃证书时,它显示";NetSDKCredentialsFile";

Get-AWSCredential -ListProfileDetail
ProfileName StoreTypeName         ProfileLocation
----------- -------------         ---------------
For_Move    NetSDKCredentialsFile
default     NetSDKCredentialsFile

我在这里找到了文件并将其删除:%userprofile%\AppData\Local\AWSToolkit\RegisteredAccounts.json

现在一切如预期。一定是意外安装的。

相关内容

  • 没有找到相关文章

最新更新