# AwsAuth

Manages mapping between IAM users and roles to Kubernetes RBAC configuration.

Extends: Construct › AwsAuth
Implements: IConstruct, IDependable

- Source: [`aws-eks/lib/aws-auth.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-eks/lib/aws-auth.ts#L30)

## Example

```ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { aws_eks as eks } from 'aws-cdk-lib';

declare const cluster: eks.Cluster;
const awsAuth = new eks.AwsAuth(this, 'MyAwsAuth', {
  cluster: cluster,
});
```

## Initializer

```ts
new AwsAuth(scope: Construct, id: string, props: AwsAuthProps)
```

## Construct Props

- `cluster`: [Cluster](/cdk/api/v2/docs/aws-cdk-lib.aws_eks.Cluster.html) (required) — The EKS cluster to apply this configuration to.

  [disable-awslint:ref-via-interface]

## Properties

- `node`: [Node](/cdk/api/v2/docs/constructs.Node.html) — The tree node.

## Methods

- `addAccount(accountId: string): void` — Additional AWS account to add to the aws-auth configmap.

  **Parameters**

  - `accountId` — account number.

- `addMastersRole(role: IRole, username?: string): void` — Adds the specified IAM role to the `system:masters` RBAC group, which means that anyone that can assume it will be able to administer this Kubernetes system.

  **Parameters**

  - `role` — The IAM role to add.
  - `username` — Optional user (defaults to the role ARN).

- `addRoleMapping(role: IRole, mapping: AwsAuthMapping): void` — Adds a mapping between an IAM role to a Kubernetes user and groups.

  **Parameters**

  - `role` — The IAM role to map.
  - `mapping` — Mapping to k8s user name and groups.

- `addUserMapping(user: IUser, mapping: AwsAuthMapping): void` — Adds a mapping between an IAM user to a Kubernetes user and groups.

  **Parameters**

  - `user` — The IAM user to map.
  - `mapping` — Mapping to k8s user name and groups.

- `isConstruct(x: any): boolean` (static) — Checks if `x` is a construct.

  Use this method instead of `instanceof` to properly detect `Construct`
  instances, even when the construct library is symlinked.

  Explanation: in JavaScript, multiple copies of the `constructs` library on
  disk are seen as independent, completely different libraries. As a
  consequence, the class `Construct` in each copy of the `constructs` library
  is seen as a different class, and an instance of one class will not test as
  `instanceof` the other class. `npm install` will not create installations
  like this, but users may manually symlink construct libraries together or
  use a monorepo tool: in those cases, multiple copies of the `constructs`
  library can be accidentally installed, and `instanceof` will behave
  unpredictably. It is safest to avoid using `instanceof`, and using
  this type-testing method instead.

  **Parameters**

  - `x` — Any object.

  **Returns:** true if `x` is an object created from a class which extends `Construct`.

- `toString(): string` — Returns a string representation of this construct.

- `with(...mixins: IMixin[]): IConstruct` — Applies one or more mixins to this construct.

  Mixins are applied in order. The list of constructs is captured at the
  start of the call, so constructs added by a mixin will not be visited.
  Use multiple `with()` calls if subsequent mixins should apply to added
  constructs.

  **Parameters**

  - `mixins` — The mixins to apply.

  **Returns:** This construct for chaining
