### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

When attempting to list roles where permission boundaries are attached the response cannot be serialized 

`aws --endpoint-url=http://localhost:4566 iam list-roles --region ap-southeast-2`
```
An error occurred (InternalError) when calling the ListRoles operation (reached max retries: 2): exception while calling iam.ListRoles: Invalid type when serializing AttachedPermissionsBoundary: '<Element 'member' at 0xffff8275ef20>' cannot be parsed to structure.
```

### Expected Behavior

Expect that all roles are listed

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

#### How are you starting localstack (e.g., `bin/localstack` command, arguments, or `docker-compose.yml`)

    docker run localstack/localstack

#### Client commands (e.g., AWS SDK code snippet, or sequence of "awslocal" commands)

* Create an IAM policy
* Create an IAM role which used the policy as a permission boundary
* Attempt to list all roles with `aws --endpoint-url=http://localhost:4566 iam list-roles --region ap-southeast-2`


### Environment

```markdown
- OS: MacOS
- LocalStack: latest
```


### Anything else?

_No response_
def test_get_user_without_username_as_user(self, create_user, aws_client):
        user_name = f"user-{short_uid()}"
        policy_name = f"policy={short_uid()}"
        create_user(UserName=user_name)
        aws_client.iam.put_user_policy(
            UserName=user_name, PolicyName=policy_name, PolicyDocument=GET_USER_POLICY_DOC
        )
        account_id = aws_client.sts.get_caller_identity()["Account"]
        keys = aws_client.iam.create_access_key(UserName=user_name)["AccessKey"]
        wait_for_user(keys)
        iam_client_as_user = create_client_with_keys("iam", keys=keys)
        user_response = iam_client_as_user.get_user()
        user = user_response["User"]
        assert user["UserName"] == user_name
        assert user["Arn"] == f"arn:aws:iam::{account_id}:user/{user_name}"
    @pytest.mark.only_localstack
    def test_get_user_without_username_as_root(self, aws_client):
        """Test get_user on root account. Marked only localstack, since we usually cannot access as root directly"""
        account_id = aws_client.sts.get_caller_identity()["Account"]
        user_response = aws_client.iam.get_user()
        user = user_response["User"]
        assert user["UserId"] == account_id
        assert user["Arn"] == f"arn:aws:iam::{account_id}:root"
    def test_get_user_without_username_as_role(self, create_role, wait_and_assume_role, aws_client):