更新 Route53 记录集 - 跨账户



尝试使用 lambda 函数更新记录集时遇到访问问题。

  • Lambda - 账户 A
  • 路线 53 - 帐户 B

我有一个附加到账户 A 中的 lambda 的 IAM 角色,该角色具有账户 B 中 IAM 角色的代入角色权限。账户 B 中的 IAM 角色有权更新账户 B 中的记录集。

当我触发 lambda 时,我的接收用户无权访问此资源。

有人可以帮助我,如果我在这里缺少任何东西或我需要任何其他设置。

您正在使用 Lambda 函数Account-AAccount-B中调用 Route 53 。

这将需要:

分配给
  • Lambda 函数的 IAM 角色 (Role-AAccount-A(。它应该授予调用AssumeRole()的权限,并将Resource设置为Account-BRole-B的 ARN:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::<Account-B>:role/role-b"
}
]
}

有了这种信任关系:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
  • Account-B中有权调用 Route 53 的 IAM 角色 (Role-B(。它还应该有一个信托策略,允许Role-AAccount-A中承担它:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "route53:*",
"Resource": "*"
}
]
}

(这是一个过于强大的政策。最好将其限制为所需的特定 Route 53 操作。

以及此信任关系(指向在上一步中创建的角色(:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<Account-A>:role/role-a"
},
"Action": "sts:AssumeRole"
}
]
}

您需要使用 STS 获取令牌以调用账户 B 上的 Route53。以下是 boto3 中 STS 的文档: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sts.html#STS.Client.assume_role

您将获得一个凭据,用于调用 Route53。

相关内容

  • 没有找到相关文章