:doc:`SecurityLake <../../securitylake>` / Client / create_subscriber

*****************
create_subscriber
*****************



.. py:method:: SecurityLake.Client.create_subscriber(**kwargs)

  

  Creates a subscriber for accounts that are already enabled in Amazon Security Lake. You can create a subscriber with access to data in the current Amazon Web Services Region.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/securitylake-2018-05-10/CreateSubscriber>`_  


  **Request Syntax**
  ::

    response = client.create_subscriber(
        accessTypes=[
            'LAKEFORMATION'|'S3',
        ],
        sources=[
            {
                'awsLogSource': {
                    'sourceName': 'ROUTE53'|'VPC_FLOW'|'SH_FINDINGS'|'CLOUD_TRAIL_MGMT'|'LAMBDA_EXECUTION'|'S3_DATA'|'EKS_AUDIT'|'WAF',
                    'sourceVersion': 'string'
                },
                'customLogSource': {
                    'attributes': {
                        'crawlerArn': 'string',
                        'databaseArn': 'string',
                        'tableArn': 'string'
                    },
                    'provider': {
                        'location': 'string',
                        'roleArn': 'string'
                    },
                    'sourceName': 'string',
                    'sourceVersion': 'string'
                }
            },
        ],
        subscriberDescription='string',
        subscriberIdentity={
            'externalId': 'string',
            'principal': 'string'
        },
        subscriberName='string',
        tags=[
            {
                'key': 'string',
                'value': 'string'
            },
        ]
    )
    
  :type accessTypes: list
  :param accessTypes: 

    The Amazon S3 or Lake Formation access type.

    

  
    - *(string) --* 

    

  :type sources: list
  :param sources: **[REQUIRED]** 

    The supported Amazon Web Services services from which logs and events are collected. Security Lake supports log and event collection for natively supported Amazon Web Services services.

    

  
    - *(dict) --* 

      The supported source types from which logs and events are collected in Amazon Security Lake. For a list of supported Amazon Web Services services, see the `Amazon Security Lake User Guide <https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html>`__.

      .. note::    This is a Tagged Union structure. Only one of the     following top level keys can be set: ``awsLogSource``, ``customLogSource``. 

    
      - **awsLogSource** *(dict) --* 

        Amazon Security Lake supports log and event collection for natively supported Amazon Web Services services. For more information, see the `Amazon Security Lake User Guide <https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html>`__.

        

      
        - **sourceName** *(string) --* 

          The name for a Amazon Web Services source. This must be a Regionally unique value.

          

        
        - **sourceVersion** *(string) --* 

          The version for a Amazon Web Services source. This must be a Regionally unique value.

          

        
      
      - **customLogSource** *(dict) --* 

        Amazon Security Lake supports custom source types. For more information, see the `Amazon Security Lake User Guide <https://docs.aws.amazon.com/security-lake/latest/userguide/custom-sources.html>`__.

        

      
        - **attributes** *(dict) --* 

          The attributes of a third-party custom source.

          

        
          - **crawlerArn** *(string) --* 

            The ARN of the Glue crawler.

            

          
          - **databaseArn** *(string) --* 

            The ARN of the Glue database where results are written, such as: ``arn:aws:daylight:us-east-1::database/sometable/*``.

            

          
          - **tableArn** *(string) --* 

            The ARN of the Glue table.

            

          
        
        - **provider** *(dict) --* 

          The details of the log provider for a third-party custom source.

          

        
          - **location** *(string) --* 

            The location of the partition in the Amazon S3 bucket for Security Lake.

            

          
          - **roleArn** *(string) --* 

            The ARN of the IAM role to be used by the entity putting logs into your custom source partition. Security Lake will apply the correct access policies to this role, but you must first manually create the trust policy for this role. The IAM role name must start with the text 'Security Lake'. The IAM role must trust the ``logProviderAccountId`` to assume the role.

            

          
        
        - **sourceName** *(string) --* 

          The name for a third-party custom source. This must be a Regionally unique value.

          

        
        - **sourceVersion** *(string) --* 

          The version for a third-party custom source. This must be a Regionally unique value.

          

        
      
    

  :type subscriberDescription: string
  :param subscriberDescription: 

    The description for your subscriber account in Security Lake.

    

  
  :type subscriberIdentity: dict
  :param subscriberIdentity: **[REQUIRED]** 

    The Amazon Web Services identity used to access your data.

    

  
    - **externalId** *(string) --* **[REQUIRED]** 

      The external ID used to establish trust relationship with the Amazon Web Services identity.

      

    
    - **principal** *(string) --* **[REQUIRED]** 

      The Amazon Web Services identity principal.

      

    
  
  :type subscriberName: string
  :param subscriberName: **[REQUIRED]** 

    The name of your Security Lake subscriber account.

    

  
  :type tags: list
  :param tags: 

    An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string.

    

  
    - *(dict) --* 

      A *tag* is a label that you can define and associate with Amazon Web Services resources, including certain types of Amazon Security Lake resources. Tags can help you identify, categorize, and manage resources in different ways, such as by owner, environment, or other criteria. You can associate tags with the following types of Security Lake resources: subscribers, and the data lake configuration for your Amazon Web Services account in individual Amazon Web Services Regions.

       

      A resource can have up to 50 tags. Each tag consists of a required *tag key* and an associated *tag value*. A *tag key* is a general label that acts as a category for a more specific tag value. Each tag key must be unique and it can have only one tag value. A *tag value* acts as a descriptor for a tag key. Tag keys and values are case sensitive. They can contain letters, numbers, spaces, or the following symbols: _ . : / = + @ -

       

      For more information, see `Tagging Amazon Security Lake resources <https://docs.aws.amazon.com/security-lake/latest/userguide/tagging-resources.html>`__ in the *Amazon Security Lake User Guide*.

      

    
      - **key** *(string) --* **[REQUIRED]** 

        The name of the tag. This is a general label that acts as a category for a more specific tag value ( ``value``).

        

      
      - **value** *(string) --* **[REQUIRED]** 

        The value that’s associated with the specified tag key ( ``key``). This value acts as a descriptor for the tag key. A tag value cannot be null, but it can be an empty string.

        

      
    

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

    
    ::

      {
          'subscriber': {
              'accessTypes': [
                  'LAKEFORMATION'|'S3',
              ],
              'createdAt': datetime(2015, 1, 1),
              'resourceShareArn': 'string',
              'resourceShareName': 'string',
              'roleArn': 'string',
              's3BucketArn': 'string',
              'sources': [
                  {
                      'awsLogSource': {
                          'sourceName': 'ROUTE53'|'VPC_FLOW'|'SH_FINDINGS'|'CLOUD_TRAIL_MGMT'|'LAMBDA_EXECUTION'|'S3_DATA'|'EKS_AUDIT'|'WAF',
                          'sourceVersion': 'string'
                      },
                      'customLogSource': {
                          'attributes': {
                              'crawlerArn': 'string',
                              'databaseArn': 'string',
                              'tableArn': 'string'
                          },
                          'provider': {
                              'location': 'string',
                              'roleArn': 'string'
                          },
                          'sourceName': 'string',
                          'sourceVersion': 'string'
                      }
                  },
              ],
              'subscriberArn': 'string',
              'subscriberDescription': 'string',
              'subscriberEndpoint': 'string',
              'subscriberId': 'string',
              'subscriberIdentity': {
                  'externalId': 'string',
                  'principal': 'string'
              },
              'subscriberName': 'string',
              'subscriberStatus': 'ACTIVE'|'DEACTIVATED'|'PENDING'|'READY',
              'updatedAt': datetime(2015, 1, 1)
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **subscriber** *(dict) --* 

        Retrieve information about the subscriber created using the ``CreateSubscriber`` API.

        
        

        - **accessTypes** *(list) --* 

          You can choose to notify subscribers of new objects with an Amazon Simple Queue Service (Amazon SQS) queue or through messaging to an HTTPS endpoint provided by the subscriber.

           

          Subscribers can consume data by directly querying Lake Formation tables in your Amazon S3 bucket through services like Amazon Athena. This subscription type is defined as ``LAKEFORMATION``.

          
          

          - *(string) --* 
      
        

        - **createdAt** *(datetime) --* 

          The date and time when the subscriber was created.

          
        

        - **resourceShareArn** *(string) --* 

          The Amazon Resource Name (ARN) which uniquely defines the Amazon Web Services RAM resource share. Before accepting the RAM resource share invitation, you can view details related to the RAM resource share.

           

          This field is available only for Lake Formation subscribers created after March 8, 2023.

          
        

        - **resourceShareName** *(string) --* 

          The name of the resource share.

          
        

        - **roleArn** *(string) --* 

          The Amazon Resource Name (ARN) specifying the role of the subscriber.

          
        

        - **s3BucketArn** *(string) --* 

          The ARN for the Amazon S3 bucket.

          
        

        - **sources** *(list) --* 

          Amazon Security Lake supports log and event collection for natively supported Amazon Web Services services. For more information, see the `Amazon Security Lake User Guide <https://docs.aws.amazon.com/security-lake/latest/userguide/source-management.html>`__.

          
          

          - *(dict) --* 

            The supported source types from which logs and events are collected in Amazon Security Lake. For a list of supported Amazon Web Services services, see the `Amazon Security Lake User Guide <https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html>`__.

            .. note::    This is a Tagged Union structure. Only one of the     following top level keys will be set: ``awsLogSource``, ``customLogSource``.     If a client receives an unknown member it will     set ``SDK_UNKNOWN_MEMBER`` as the top level key,     which maps to the name or tag of the unknown     member. The structure of ``SDK_UNKNOWN_MEMBER`` is     as follows::

                        'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}


          
            

            - **awsLogSource** *(dict) --* 

              Amazon Security Lake supports log and event collection for natively supported Amazon Web Services services. For more information, see the `Amazon Security Lake User Guide <https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html>`__.

              
              

              - **sourceName** *(string) --* 

                The name for a Amazon Web Services source. This must be a Regionally unique value.

                
              

              - **sourceVersion** *(string) --* 

                The version for a Amazon Web Services source. This must be a Regionally unique value.

                
          
            

            - **customLogSource** *(dict) --* 

              Amazon Security Lake supports custom source types. For more information, see the `Amazon Security Lake User Guide <https://docs.aws.amazon.com/security-lake/latest/userguide/custom-sources.html>`__.

              
              

              - **attributes** *(dict) --* 

                The attributes of a third-party custom source.

                
                

                - **crawlerArn** *(string) --* 

                  The ARN of the Glue crawler.

                  
                

                - **databaseArn** *(string) --* 

                  The ARN of the Glue database where results are written, such as: ``arn:aws:daylight:us-east-1::database/sometable/*``.

                  
                

                - **tableArn** *(string) --* 

                  The ARN of the Glue table.

                  
            
              

              - **provider** *(dict) --* 

                The details of the log provider for a third-party custom source.

                
                

                - **location** *(string) --* 

                  The location of the partition in the Amazon S3 bucket for Security Lake.

                  
                

                - **roleArn** *(string) --* 

                  The ARN of the IAM role to be used by the entity putting logs into your custom source partition. Security Lake will apply the correct access policies to this role, but you must first manually create the trust policy for this role. The IAM role name must start with the text 'Security Lake'. The IAM role must trust the ``logProviderAccountId`` to assume the role.

                  
            
              

              - **sourceName** *(string) --* 

                The name for a third-party custom source. This must be a Regionally unique value.

                
              

              - **sourceVersion** *(string) --* 

                The version for a third-party custom source. This must be a Regionally unique value.

                
          
        
      
        

        - **subscriberArn** *(string) --* 

          The subscriber ARN of the Amazon Security Lake subscriber account.

          
        

        - **subscriberDescription** *(string) --* 

          The subscriber descriptions for a subscriber account. The description for a subscriber includes ``subscriberName``, ``accountID``, ``externalID``, and ``subscriberId``.

          
        

        - **subscriberEndpoint** *(string) --* 

          The subscriber endpoint to which exception messages are posted.

          
        

        - **subscriberId** *(string) --* 

          The subscriber ID of the Amazon Security Lake subscriber account.

          
        

        - **subscriberIdentity** *(dict) --* 

          The Amazon Web Services identity used to access your data.

          
          

          - **externalId** *(string) --* 

            The external ID used to establish trust relationship with the Amazon Web Services identity.

            
          

          - **principal** *(string) --* 

            The Amazon Web Services identity principal.

            
      
        

        - **subscriberName** *(string) --* 

          The name of your Amazon Security Lake subscriber account.

          
        

        - **subscriberStatus** *(string) --* 

          The subscriber status of the Amazon Security Lake subscriber account.

          
        

        - **updatedAt** *(datetime) --* 

          The date and time when the subscriber was last updated.

          
    
  
  **Exceptions**
  
  *   :py:class:`SecurityLake.Client.exceptions.BadRequestException`

  
  *   :py:class:`SecurityLake.Client.exceptions.ResourceNotFoundException`

  
  *   :py:class:`SecurityLake.Client.exceptions.InternalServerException`

  
  *   :py:class:`SecurityLake.Client.exceptions.AccessDeniedException`

  
  *   :py:class:`SecurityLake.Client.exceptions.ConflictException`

  
  *   :py:class:`SecurityLake.Client.exceptions.ThrottlingException`

  