:doc:`RDS <../../rds>` / Client / authorize_db_security_group_ingress

***********************************
authorize_db_security_group_ingress
***********************************



.. py:method:: RDS.Client.authorize_db_security_group_ingress(**kwargs)

  

  Enables ingress to a DBSecurityGroup using one of two forms of authorization. First, EC2 or VPC security groups can be added to the DBSecurityGroup if the application using the database is running on EC2 or VPC instances. Second, IP ranges are available if the application accessing your database is running on the internet. Required parameters for this API are one of CIDR range, EC2SecurityGroupId for VPC, or (EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId for non-VPC).

   

  You can't authorize ingress from an EC2 security group in one Amazon Web Services Region to an Amazon RDS DB instance in another. You can't authorize ingress from a VPC security group in one VPC to an Amazon RDS DB instance in another.

   

  For an overview of CIDR ranges, go to the `Wikipedia Tutorial <http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing>`__.

   

  .. note::

    

    EC2-Classic was retired on August 15, 2022. If you haven't migrated from EC2-Classic to a VPC, we recommend that you migrate as soon as possible. For more information, see `Migrate from EC2-Classic to a VPC <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html>`__ in the *Amazon EC2 User Guide*, the blog `EC2-Classic Networking is Retiring – Here’s How to Prepare <http://aws.amazon.com/blogs/aws/ec2-classic-is-retiring-heres-how-to-prepare/>`__, and `Moving a DB instance not in a VPC into a VPC <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.Non-VPC2VPC.html>`__ in the *Amazon RDS User Guide*.

    

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/AuthorizeDBSecurityGroupIngress>`_  


  **Request Syntax**
  ::

    response = client.authorize_db_security_group_ingress(
        DBSecurityGroupName='string',
        CIDRIP='string',
        EC2SecurityGroupName='string',
        EC2SecurityGroupId='string',
        EC2SecurityGroupOwnerId='string'
    )
    
  :type DBSecurityGroupName: string
  :param DBSecurityGroupName: **[REQUIRED]** 

    The name of the DB security group to add authorization to.

    

  
  :type CIDRIP: string
  :param CIDRIP: 

    The IP range to authorize.

    

  
  :type EC2SecurityGroupName: string
  :param EC2SecurityGroupName: 

    Name of the EC2 security group to authorize. For VPC DB security groups, ``EC2SecurityGroupId`` must be provided. Otherwise, ``EC2SecurityGroupOwnerId`` and either ``EC2SecurityGroupName`` or ``EC2SecurityGroupId`` must be provided.

    

  
  :type EC2SecurityGroupId: string
  :param EC2SecurityGroupId: 

    Id of the EC2 security group to authorize. For VPC DB security groups, ``EC2SecurityGroupId`` must be provided. Otherwise, ``EC2SecurityGroupOwnerId`` and either ``EC2SecurityGroupName`` or ``EC2SecurityGroupId`` must be provided.

    

  
  :type EC2SecurityGroupOwnerId: string
  :param EC2SecurityGroupOwnerId: 

    Amazon Web Services account number of the owner of the EC2 security group specified in the ``EC2SecurityGroupName`` parameter. The Amazon Web Services access key ID isn't an acceptable value. For VPC DB security groups, ``EC2SecurityGroupId`` must be provided. Otherwise, ``EC2SecurityGroupOwnerId`` and either ``EC2SecurityGroupName`` or ``EC2SecurityGroupId`` must be provided.

    

  
  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'DBSecurityGroup': {
              'OwnerId': 'string',
              'DBSecurityGroupName': 'string',
              'DBSecurityGroupDescription': 'string',
              'VpcId': 'string',
              'EC2SecurityGroups': [
                  {
                      'Status': 'string',
                      'EC2SecurityGroupName': 'string',
                      'EC2SecurityGroupId': 'string',
                      'EC2SecurityGroupOwnerId': 'string'
                  },
              ],
              'IPRanges': [
                  {
                      'Status': 'string',
                      'CIDRIP': 'string'
                  },
              ],
              'DBSecurityGroupArn': 'string'
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **DBSecurityGroup** *(dict) --* 

        Contains the details for an Amazon RDS DB security group.

         

        This data type is used as a response element in the ``DescribeDBSecurityGroups`` action.

        
        

        - **OwnerId** *(string) --* 

          Provides the Amazon Web Services ID of the owner of a specific DB security group.

          
        

        - **DBSecurityGroupName** *(string) --* 

          Specifies the name of the DB security group.

          
        

        - **DBSecurityGroupDescription** *(string) --* 

          Provides the description of the DB security group.

          
        

        - **VpcId** *(string) --* 

          Provides the VpcId of the DB security group.

          
        

        - **EC2SecurityGroups** *(list) --* 

          Contains a list of ``EC2SecurityGroup`` elements.

          
          

          - *(dict) --* 

            This data type is used as a response element in the following actions:

             

            
            * ``AuthorizeDBSecurityGroupIngress``
             
            * ``DescribeDBSecurityGroups``
             
            * ``RevokeDBSecurityGroupIngress``
            

            
            

            - **Status** *(string) --* 

              Provides the status of the EC2 security group. Status can be "authorizing", "authorized", "revoking", and "revoked".

              
            

            - **EC2SecurityGroupName** *(string) --* 

              Specifies the name of the EC2 security group.

              
            

            - **EC2SecurityGroupId** *(string) --* 

              Specifies the id of the EC2 security group.

              
            

            - **EC2SecurityGroupOwnerId** *(string) --* 

              Specifies the Amazon Web Services ID of the owner of the EC2 security group specified in the ``EC2SecurityGroupName`` field.

              
        
      
        

        - **IPRanges** *(list) --* 

          Contains a list of ``IPRange`` elements.

          
          

          - *(dict) --* 

            This data type is used as a response element in the ``DescribeDBSecurityGroups`` action.

            
            

            - **Status** *(string) --* 

              The status of the IP range. Status can be "authorizing", "authorized", "revoking", and "revoked".

              
            

            - **CIDRIP** *(string) --* 

              The IP range.

              
        
      
        

        - **DBSecurityGroupArn** *(string) --* 

          The Amazon Resource Name (ARN) for the DB security group.

          
    
  
  **Exceptions**
  
  *   :py:class:`RDS.Client.exceptions.InvalidDBSecurityGroupStateFault`

  
  *   :py:class:`RDS.Client.exceptions.AuthorizationQuotaExceededFault`

  
  *   :py:class:`RDS.Client.exceptions.DBSecurityGroupNotFoundFault`

  
  *   :py:class:`RDS.Client.exceptions.AuthorizationAlreadyExistsFault`

  

  **Examples**

  This example authorizes access to the specified security group by the specified CIDR block.
  ::

    response = client.authorize_db_security_group_ingress(
        CIDRIP='203.0.113.5/32',
        DBSecurityGroupName='mydbsecuritygroup',
    )
    
    print(response)

  
  Expected Output:
  ::

    {
        'DBSecurityGroup': {
        },
        'ResponseMetadata': {
            '...': '...',
        },
    }

  