##### SUMMARY

If you attempt to modify the policy on an existing KMS CMK using aws_kms's "policy" option this doesn't appear to get updated.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
lib/ansible/modules/cloud/amazon/aws_kms.py

##### ANSIBLE VERSION

```
ansible 2.8.1
  config file = /home/mchappel/.ansible.cfg
  configured module search path = [u'/home/mchappel/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.5 (default, Jun 11 2019, 12:19:05) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]
```

##### CONFIGURATION

```
DEFAULT_CALLBACK_WHITELIST(/home/mchappel/.ansible.cfg) = [u'timer', u'profile_tasks']
HOST_KEY_CHECKING(/home/mchappel/.ansible.cfg) = False
RETRY_FILES_ENABLED(/home/mchappel/.ansible.cfg) = False
```

##### OS / ENVIRONMENT
RHEL7 + AWS


##### STEPS TO REPRODUCE

- Create KMS CMK
- Attempt to update policy using the 'policy' option on aws_kms

```
    - name: 'Update policy on KMS Keys'
      aws_kms:
        key_id: '{{ kms_key.id }}'
        alias: '{{ kms_key.alias | default(omit) }}'
        policy: ' {{ kms_current_policy | to_json }}'
```

##### EXPECTED RESULTS
KMS Policy is updated

##### ACTUAL RESULTS
KMS Policy stays the same
if role_arn not in statement['Principal']['AWS']:  
                        changes_needed[granttype] = 'add'
                        if not dry_run:
                            statement['Principal']['AWS'].append(role_arn)
                elif role_arn in statement['Principal']['AWS']:  
                    changes_needed[granttype] = 'remove'
                    if not dry_run:
                        statement['Principal']['AWS'].remove(role_arn)
            elif mode == 'deny' and statement['Sid'] == statement_label[granttype] and role_arn in statement['Principal']['AWS']:
                
                
                changes_needed[granttype] = 'remove'
                if not dry_run:
                    statement['Principal']['AWS'].remove(role_arn)
    try:
        if len(changes_needed) and not dry_run:
            policy_json_string = json.dumps(policy)
            kms.put_key_policy(KeyId=keyarn, PolicyName='default', Policy=policy_json_string)
            
            ret['changed'] = True
    except Exception:
        raise
    ret['changes_needed'] = changes_needed
    ret['had_invalid_entries'] = had_invalid_entries
    ret['new_policy'] = policy
    if dry_run:
        
        ret['changed'] = len(changes_needed) > 0
    return ret
def assert_policy_shape(policy):