AWS Powershell授权问题
我正在为公司内部人员构建一个自定义模块,以便他们能够使用AWS资源。AWS Powershell授权问题,powershell,amazon-web-services,aws-sdk,Powershell,Amazon Web Services,Aws Sdk,我正在为公司内部人员构建一个自定义模块,以便他们能够使用AWS资源。 在模块中,我有一个函数,允许他们根据自己的active directory帐户承担特定的角色。 大致如下: function Use-Role { param( [Parameter(Mandatory=$false, HelpMessage="Sandbox, Dev")] [string] $Account="Dev", [Parameter(Mandatory=$f
在模块中,我有一个函数,允许他们根据自己的active directory帐户承担特定的角色。 大致如下:
function Use-Role {
param(
[Parameter(Mandatory=$false, HelpMessage="Sandbox, Dev")]
[string] $Account="Dev",
[Parameter(Mandatory=$false, HelpMessage="operator, migrator")]
[string] $Role="operator",
[Parameter(Mandatory=$false, HelpMessage="eu-west-1, eu-west-2")]
[string] $Region="eu-west-1"
)
$accountId = If ($Account -eq "Dev") {"123456"} Else {"67890"}
Set-AWSSamlEndpoint -Endpoint "some_endpoint" -StoreAs endPoint -AuthenticationType NTLM
if ($Role -match "operator") {
Set-AWSSamlRoleProfile -StoreAs "SAML-$Account-BackupOperator" -EndpointName endPoint -RoleARN "arn:aws:iam::$($accountId):role/SAML-$Account-BackupOperator" -PrincipalARN "arn:aws:iam::$($accountId):saml-provider/ADFS"
Initialize-AWSDefaults -ProfileName "SAML-$Account-BackupOperator" -Region $Region
}
elseif ($Role -match "migrator"){
Set-AWSSamlRoleProfile -StoreAs "SAML-$Account-DbMigrator" -EndpointName endPoint -RoleARN "arn:aws:iam::$($accountId):role/SAML-$Account-DbMigrator" -PrincipalARN "arn:aws:iam::$($accountId):saml-provider/ADFS"
Initialize-AWSDefaults -ProfileName "SAML-$Account-DbMigrator" -Region $Region
}
}
当用户导入模块并使用此功能时,授权未按预期工作。他/她无法获得他们应该获得的资源和其他类似问题
当我运行相同的代码时:
Set-AWSSamlRoleProfile -StoreAs "SAML-$Account-BackupOperator" -EndpointName endPoint -RoleARN "arn:aws:iam::$($accountId):role/SAML-$Account-BackupOperator" -PrincipalARN "arn:aws:iam::$($accountId):saml-provider/ADFS"
Initialize-AWSDefaults -ProfileName "SAML-$Account-BackupOperator" -Region $Region
直接从powershell终端可以正常工作,并且所有权限都正常
有没有关于如何调试它的指针,可能是什么?我已经检查了您的代码,并且逻辑没有问题,所以我想知道这是否是AWS cmdlet的问题,但是如果不能直接测试,就很难确定。我确实发现了这个,它看起来与您有任何关系吗?:我确实认为它是SDK中的一个bug。我们已经对此进行了几天的调查,当从模块内调用函数时,
Initilize AWSDefaults
和Set InitilizeCredentials
似乎没有正确的行为。此外,将角色凭据存储在与角色名称不匹配的配置文件名称下似乎还会导致另一个错误:(