<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def describe_policy(policyName,
             region=None, key=None, keyid=None, profile=None):
    '''
    Given a policy name describe its properties.

    Returns a dictionary of interesting properties.

    CLI Example:

    .. code-block:: bash

        salt myminion boto_iot.describe_policy mypolicy

    '''

    try:
        conn = _get_conn(region=region, key=key, keyid=keyid, profile=profile)
        policy = conn.get_policy(policyName=policyName)
        if policy:
            keys = ('policyName', 'policyArn', 'policyDocument',
                    'defaultVersionId')
            return {'policy': dict([(k, policy.get(k)) for k in keys])}
        else:
            return {'policy': None}
    except ClientError as e:
        err = __utils__['boto3.get_error'](e)
        if e.response.get('Error', {}).get('Code') == 'ResourceNotFoundException':
            return {'policy': None}
        return {'error': __utils__['boto3.get_error'](e)}