我将首先声明我没有配置跨帐户权限的经验。(试图弥补这一点(我在AWS中建立了一个多账户基础设施。我有一个拥有SAML提供程序的根帐户,它成功地允许我连接到其他子帐户。我在子应用程序帐户(dev、staging、production(中设置了一些CDK堆栈。当我尝试部署时,我会收到一个错误,说明我没有访问SAML提供程序的权限,这是有道理的,因为部署是针对开发帐户运行的。以下是有问题的堆栈的相关部分。。。
const samlProvider = iam.SamlProvider.fromSamlProviderArn(this, "saml-provider", "arn:aws:iam::XXXXXX");
const endpoint = this.vpc.addClientVpnEndpoint('Endpoint', {
cidr: '10.10.0.0/16',
serverCertificateArn: this.domainCert.certificateArn,
userBasedAuthentication: ec2.ClientVpnUserBasedAuthentication.federated(samlProvider),
authorizeAllUsersToVpcCidr: true,
});
我认为我需要在根帐户上添加一个内联策略,以授予访问SAML提供程序的权限,但我不确定语法。如有任何帮助,我们将不胜感激。
我不确定需要什么操作,所以我只添加了所有的获取权限
我尝试了以下策略。。。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GetSamlProvider",
"Effect": "Allow",
"Action": [
"iam:GetSAMLProvider"
],
"Resource": [
"arn:aws:iam::XXXXXXX"
]
}
]
}
我仍然得到相同的权限错误您无权访问提供的SAML Provider arn。
在与AWS支持进行了几次交互后,我意识到我做这一切都错了。您不能从VPN端点的单独帐户使用saml提供商。相反,应该做的是在与saml提供商相同的帐户中设置VPN端点,然后设置VPC对等,以便您可以从主帐户访问子帐户VPC。