:doc:`Glue <../../glue>` / Client / put_data_catalog_encryption_settings

************************************
put_data_catalog_encryption_settings
************************************



.. py:method:: Glue.Client.put_data_catalog_encryption_settings(**kwargs)

  

  Sets the security configuration for a specified catalog. After the configuration has been set, the specified encryption is applied to every catalog write thereafter.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/PutDataCatalogEncryptionSettings>`_  


  **Request Syntax**
  ::

    response = client.put_data_catalog_encryption_settings(
        CatalogId='string',
        DataCatalogEncryptionSettings={
            'EncryptionAtRest': {
                'CatalogEncryptionMode': 'DISABLED'|'SSE-KMS'|'SSE-KMS-WITH-SERVICE-ROLE',
                'SseAwsKmsKeyId': 'string',
                'CatalogEncryptionServiceRole': 'string'
            },
            'ConnectionPasswordEncryption': {
                'ReturnConnectionPasswordEncrypted': True|False,
                'AwsKmsKeyId': 'string'
            }
        }
    )
    
  :type CatalogId: string
  :param CatalogId: 

    The ID of the Data Catalog to set the security configuration for. If none is provided, the Amazon Web Services account ID is used by default.

    

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

    The security configuration to set.

    

  
    - **EncryptionAtRest** *(dict) --* 

      Specifies the encryption-at-rest configuration for the Data Catalog.

      

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

        The encryption-at-rest mode for encrypting Data Catalog data.

        

      
      - **SseAwsKmsKeyId** *(string) --* 

        The ID of the KMS key to use for encryption at rest.

        

      
      - **CatalogEncryptionServiceRole** *(string) --* 

        The role that Glue assumes to encrypt and decrypt the Data Catalog objects on the caller's behalf.

        

      
    
    - **ConnectionPasswordEncryption** *(dict) --* 

      When connection password protection is enabled, the Data Catalog uses a customer-provided key to encrypt the password as part of ``CreateConnection`` or ``UpdateConnection`` and store it in the ``ENCRYPTED_PASSWORD`` field in the connection properties. You can enable catalog encryption or only password encryption.

      

    
      - **ReturnConnectionPasswordEncrypted** *(boolean) --* **[REQUIRED]** 

        When the ``ReturnConnectionPasswordEncrypted`` flag is set to "true", passwords remain encrypted in the responses of ``GetConnection`` and ``GetConnections``. This encryption takes effect independently from catalog encryption.

        

      
      - **AwsKmsKeyId** *(string) --* 

        An KMS key that is used to encrypt the connection password.

         

        If connection password protection is enabled, the caller of ``CreateConnection`` and ``UpdateConnection`` needs at least ``kms:Encrypt`` permission on the specified KMS key, to encrypt passwords before storing them in the Data Catalog.

         

        You can set the decrypt permission to enable or restrict access on the password key according to your security requirements.

        

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

    
    ::

      {}
      
    **Response Structure**

    

    - *(dict) --* 
  
  **Exceptions**
  
  *   :py:class:`Glue.Client.exceptions.InternalServiceException`

  
  *   :py:class:`Glue.Client.exceptions.InvalidInputException`

  
  *   :py:class:`Glue.Client.exceptions.OperationTimeoutException`

  