# UserProps

Properties for defining an IAM user.

Extends: UserProps
Used as props by: User

- Source: [`aws-iam/lib/user.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/aws-iam/lib/user.ts#L48)

## Example

```ts
    const user = new User(this, 'MyUser', { password: SecretValue.plainText('1234') });
    const group = new Group(this, 'MyGroup');

    const policy = new Policy(this, 'MyPolicy');
    policy.attachToUser(user);
    group.attachInlinePolicy(policy);
```

## Properties

- `groups`: [IGroup](/cdk/api/v2/docs/aws-cdk-lib.aws_iam.IGroup.html)[] — Groups to add this user to.

  **Default:** No groups.

  You can also use `addToGroup` to add this
  user to a group.

- `managedPolicies`: [IManagedPolicy](/cdk/api/v2/docs/aws-cdk-lib.aws_iam.IManagedPolicy.html)[] — A list of managed policies associated with this role.

  **Default:** No managed policies.

  You can add managed policies later using
  `addManagedPolicy(ManagedPolicy.fromAwsManagedPolicyName(policyName))`.

- `password`: [SecretValue](/cdk/api/v2/docs/aws-cdk-lib.SecretValue.html) — The password for the user. This is required so the user can access the AWS Management Console.

  **Default:** User won't be able to access the management console without a password.

  You can use `SecretValue.unsafePlainText` to specify a password in plain text or
  use `secretsmanager.Secret.fromSecretAttributes` to reference a secret in
  Secrets Manager.

- `passwordResetRequired`: boolean = false — Specifies whether the user is required to set a new password the next time the user logs in to the AWS Management Console.

  If this is set to 'true', you must also specify "initialPassword".

- `path`: string = / — The path for the user name.

  For more information about paths, see IAM
  Identifiers in the IAM User Guide.

- `permissionsBoundary`: [IManagedPolicy](/cdk/api/v2/docs/aws-cdk-lib.aws_iam.IManagedPolicy.html) — AWS supports permissions boundaries for IAM entities (users or roles).

  **Default:** No permissions boundary.

  A permissions boundary is an advanced feature for using a managed policy
  to set the maximum permissions that an identity-based policy can grant to
  an IAM entity. An entity's permissions boundary allows it to perform only
  the actions that are allowed by both its identity-based policies and its
  permissions boundaries.

- `userName`: string — A name for the IAM user.

  **Default:** Generated by CloudFormation (recommended)

  For valid values, see the UserName parameter for
  the CreateUser action in the IAM API Reference. If you don't specify a
  name, AWS CloudFormation generates a unique physical ID and uses that ID
  for the user name.

  If you specify a name, you cannot perform updates that require
  replacement of this resource. You can perform updates that require no or
  some interruption. If you must replace the resource, specify a new name.

  If you specify a name, you must specify the CAPABILITY_NAMED_IAM value to
  acknowledge your template's capabilities. For more information, see
  Acknowledging IAM Resources in AWS CloudFormation Templates.
