我正在为公司内部的人员构建自定义模块,以便他们可以使用AWS资源 在模块中,我有一个函数,允许它们根据其活动目录帐户承担某个角色。 看起来大致如下:
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终端它工作正常,所有权限都没问题。
任何指针如何调试它,可能是什么?