【问题标题】:Work with RDS Tags in boto3 / How to get ARN in boto3在 boto3 中使用 RDS 标签 / 如何在 boto3 中获取 ARN
【发布时间】:2020-11-22 18:00:26
【问题描述】:

我尝试使用 python 在 AWS 中标记各种对象。 AFAIK 对于某些使用 boto 的服务是不可能的。因此,我决定看一下boto3。我已经堆积在RDS上。基于 documentation,add_tags_to_resource 方法需要一个资源 ARN。我看不出有什么办法。

为了解决上述问题,我考虑自己创建 ARN。毕竟这并不难-RDS Tagging documentation。但是还有另一个问题。在我的脚本中,我不能保证知道帐号,所以我想知道如何获取帐号以自己创建 ARN。

【问题讨论】:

    标签: python amazon-web-services rds boto3


    【解决方案1】:

    我想知道如何获取帐号

    不幸的是,它并不容易找到。但是你可以有一些技巧:

    如果您有权访问某些 API 调用,则可以获取安全组或 AMI 并检查 OwnerId。

    >>> import boto3
    >>> client = boto3.client('ec2')
    >>> client.describe_security_groups()['SecurityGroups'][0]['OwnerId']
    '1234567890'
    

    只有在您可以保证 SG 或 AMI 是由您正在查找的帐户创建的情况下,此技巧才有效。

    使用对 IAM 进行 API 调用并解析您自己的角色或用户的 ARN

    >>> client = boto3.client('iam')
    >>> client.get_user()['User']['Arn'].split(':')[4]
    

    【讨论】:

      【解决方案2】:

      将你的boto3升级到最新版本,它现在返回一个新属性DBInstanceArn

      http://boto3.readthedocs.io/en/latest/reference/services/rds.html#RDS.Client.describe_db_instances

      【讨论】:

        【解决方案3】:

        使用 boto3,您可以通过此代码获取 db arn....

        from boto3 import client
        REGION = "us-east-1"
        INSTANCES = ["db-name-01"]
        
        rds = client("rds", region_name=REGION)
        
        if INSTANCES:
            for instance in INSTANCES:
                instance_counts = {}
                response = rds.describe_db_instances(DBInstanceIdentifier=instance)
                dbins = response['DBInstances']
                dbin = dbins[0]
                dbarn = dbin['DBInstanceArn']
        

        【讨论】:

          【解决方案4】:

          您可以从中获取 rds arn

          rds_dict = self.rds_client.describe_db_instances()

          如果你遍历rds_dict,你会得到一个名为DBInstanceArn的键

          我正在为此使用 boto3

          【讨论】:

          • 由于问题是五年前的,您应该在发布时包括您的解决方案适用的版本号。
          猜你喜欢
          • 2020-05-12
          • 1970-01-01
          • 2021-07-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-02-03
          相关资源
          最近更新 更多