如何从帐户1创建帐户2中的记录集

问题描述 投票:0回答:2

我正在尝试从Account2中的Account1创建一个route53记录集。

[通过阅读其他文章和在线搜索,我正在考虑做这样的事情:

from boto3 import Session

session = Session(aws_access_key_id=*****,aws_secret_access_key=****,region_name='us-east-1')
r53_client = session.client('route53')
r53_resource = session.resource('route53')

想从有经验的人那里知道这是否是正确的方法?还是有更好的方法实现以上目标?

这里是更新的代码:

def lambda_handler(event, context):
    sts = boto3.client('sts')
    response = sts.assume_role(
        RoleArn='arn:aws:iam::***123:role/lambda',
        RoleSessionName='my-random-session-name',
        DurationSeconds= 900 # how many seconds these credentials will work
    )

    tempAccessKeyId = response['Credentials']['AccessKeyId']
    tempSecretAccessKey = response['Credentials']['SecretAccessKey']
    tempSessionToken = response['Credentials']['SessionToken']

    client = boto3.client('route53', 
                  region_name = 'us-west-2',
                  aws_access_key_id=tempAccessKeyId,
                  aws_secret_access_key=tempSecretAccessKey,
                  aws_session_token=tempSessionToken)


    response = client.list_resource_record_sets(
    HostedZoneId='***',
    StartRecordName='test.example.com.',
    StartRecordType='A'
    )

    print(response)
amazon-web-services boto3 amazon-route53
2个回答
1
投票

基于您通过AWS Lambda函数执行此操作的事实,最安全的方法是:

  • 在帐户1中:
    • 创建将由Lambda函数使用的IAM角色(Role 1
    • 将权限分配给允许其承担Role-2的角色>
    • 还分配Lambda函数所需的任何其他权限(您通常会添加AWSLambdaBasicExecutionRole托管策略以允许记录)
    • Role 1分配给Lambda函数
  • 在帐户2中:
    • 创建具有信任权限的IAM角色(Role 2),该权限允许帐户1中的Role 1承担角色
    • 授予Role 2适当的权限以使用Amazon Route 53
  • 在您的Lambda代码中,您将在AssumeRole()上调用Role 2。这将提供一组临时凭证,可用于访问帐户2(按照上面的代码)。

    参见:Switching to an IAM Role (AWS API) - AWS Identity and Access Management


    0
    投票

    要对AWS账户进行API调用,您要么需要该AWS账户的凭证(例如,与IAM用户关联的凭证),要么需要能够承担

    © www.soinside.com 2019 - 2024. All rights reserved.