or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

access-keys-credentials.mdaccount-management.mdclient-config.mdgroups-roles.mdidentity-providers.mdindex.mdinstance-profiles.mdmfa-devices.mdpolicy-management.mduser-management.md
tile.json

account-management.mddocs/

Account Management

AWS account-level IAM settings, policies, and configuration including account aliases, password policies, and security token service preferences.

Capabilities

Account Aliases

Account aliases provide friendly names for AWS accounts, making them easier to identify in sign-in URLs and account selection interfaces.

Create Account Alias

Creates an alias for your AWS account for use in the IAM sign-in page URL.

/**
 * Creates an alias for your AWS account
 * @param AccountAlias - The account alias to create (lowercase letters, digits, and dashes only)
 */
interface CreateAccountAliasCommandInput {
  AccountAlias: string;
}

Usage Example:

import { IAMClient, CreateAccountAliasCommand } from "@aws-sdk/client-iam";

const client = new IAMClient({ region: "us-east-1" });

const command = new CreateAccountAliasCommand({
  AccountAlias: "my-company-production"
});

await client.send(command);
console.log("Account alias created successfully");
// Users can now sign in at: https://my-company-production.signin.aws.amazon.com/console

List Account Aliases

Lists the account alias associated with the AWS account.

/**
 * Lists the account alias associated with the AWS account
 * @param Marker - Use this parameter only when paginating results
 * @param MaxItems - Maximum number of items to return
 */
interface ListAccountAliasesCommandInput {
  Marker?: string;
  MaxItems?: number;
}

interface ListAccountAliasesCommandOutput {
  AccountAliases: string[];
  IsTruncated?: boolean;
  Marker?: string;
}

Delete Account Alias

Deletes the specified AWS account alias.

/**
 * Deletes the specified AWS account alias
 * @param AccountAlias - The name of the account alias to delete
 */
interface DeleteAccountAliasCommandInput {
  AccountAlias: string;
}

Account Summary

Retrieve comprehensive information about your AWS account's IAM usage and limits.

Get Account Summary

Retrieves information about IAM entity usage and IAM quotas in the AWS account.

/**
 * Retrieves information about IAM entity usage and IAM quotas in the AWS account
 */
interface GetAccountSummaryCommandInput {}

interface GetAccountSummaryCommandOutput {
  SummaryMap?: Record<SummaryKeyType, number>;
  IsTruncated?: boolean;
  Marker?: string;
}

Usage Example:

import { IAMClient, GetAccountSummaryCommand } from "@aws-sdk/client-iam";

const command = new GetAccountSummaryCommand({});
const result = await client.send(command);

console.log("Account Summary:");
console.log("Users:", result.SummaryMap?.Users);
console.log("Groups:", result.SummaryMap?.Groups);
console.log("Roles:", result.SummaryMap?.Roles);
console.log("Policies:", result.SummaryMap?.Policies);
console.log("MFA Devices:", result.SummaryMap?.MFADevices);

Account Authorization Details

Get detailed information about all IAM entities in the account.

Get Account Authorization Details

Retrieves information about all IAM users, groups, roles, and policies in your AWS account, including their relationships to one another.

/**
 * Retrieves information about all IAM users, groups, roles, and policies in your AWS account
 * @param Filter - A list of entity types used to filter the results
 * @param Marker - Use this parameter only when paginating results
 * @param MaxItems - Maximum number of items to return
 */
interface GetAccountAuthorizationDetailsCommandInput {
  Filter?: EntityType[];
  Marker?: string;
  MaxItems?: number;
}

interface GetAccountAuthorizationDetailsCommandOutput {
  UserDetailList?: UserDetail[];
  GroupDetailList?: GroupDetail[];
  RoleDetailList?: RoleDetail[];
  Policies?: ManagedPolicyDetail[];
  IsTruncated?: boolean;
  Marker?: string;
}

Password Policy

Configure and manage password requirements for IAM users in your AWS account.

Update Account Password Policy

Updates the password policy settings for the AWS account.

/**
 * Updates the password policy settings for the AWS account
 * @param MinimumPasswordLength - Minimum length to require for IAM user passwords
 * @param RequireSymbols - Whether passwords must contain at least one symbol
 * @param RequireNumbers - Whether passwords must contain at least one numeric character
 * @param RequireUppercaseCharacters - Whether passwords must contain at least one uppercase character
 * @param RequireLowercaseCharacters - Whether passwords must contain at least one lowercase character
 * @param AllowUsersToChangePassword - Whether users are allowed to change their own password
 * @param MaxPasswordAge - Number of days that a password is valid
 * @param PasswordReusePrevention - Number of previous passwords that users are prevented from reusing
 * @param HardExpiry - Whether users are prevented from setting a new password after their password has expired
 */
interface UpdateAccountPasswordPolicyCommandInput {
  MinimumPasswordLength?: number;
  RequireSymbols?: boolean;
  RequireNumbers?: boolean;
  RequireUppercaseCharacters?: boolean;
  RequireLowercaseCharacters?: boolean;
  AllowUsersToChangePassword?: boolean;
  MaxPasswordAge?: number;
  PasswordReusePrevention?: number;
  HardExpiry?: boolean;
}

Usage Example:

import { IAMClient, UpdateAccountPasswordPolicyCommand } from "@aws-sdk/client-iam";

const command = new UpdateAccountPasswordPolicyCommand({
  MinimumPasswordLength: 12,
  RequireSymbols: true,
  RequireNumbers: true,
  RequireUppercaseCharacters: true,
  RequireLowercaseCharacters: true,
  AllowUsersToChangePassword: true,
  MaxPasswordAge: 90,
  PasswordReusePrevention: 12,
  HardExpiry: false
});

await client.send(command);
console.log("Password policy updated successfully");

Get Account Password Policy

Retrieves the password policy for the AWS account.

/**
 * Retrieves the password policy for the AWS account
 */
interface GetAccountPasswordPolicyCommandInput {}

interface GetAccountPasswordPolicyCommandOutput {
  PasswordPolicy: PasswordPolicy;
}

Delete Account Password Policy

Deletes the password policy for the AWS account, reverting to default AWS password requirements.

/**
 * Deletes the password policy for the AWS account
 */
interface DeleteAccountPasswordPolicyCommandInput {}

Security Token Service Preferences

Configure preferences for AWS Security Token Service (STS) behavior.

Set Security Token Service Preferences

Sets the specified version of the STS global endpoint token as the token version used for the AWS account.

/**
 * Sets the specified version of the STS global endpoint token
 * @param GlobalEndpointTokenVersion - The version of the STS global endpoint token
 */
interface SetSecurityTokenServicePreferencesCommandInput {
  GlobalEndpointTokenVersion: GlobalEndpointTokenVersion;
}

AWS Organizations Root Account Management

Manage credentials and sessions for AWS Organizations root accounts.

Enable/Disable Organizations Root Credentials Management

/**
 * Enables or disables credentials management for the Organizations root account
 */
interface EnableOrganizationsRootCredentialsManagementCommandInput {}
interface DisableOrganizationsRootCredentialsManagementCommandInput {}

Enable/Disable Organizations Root Sessions

/**
 * Enables or disables root sessions for the Organizations root account
 */
interface EnableOrganizationsRootSessionsCommandInput {}
interface DisableOrganizationsRootSessionsCommandInput {}

Types

interface PasswordPolicy {
  MinimumPasswordLength?: number;
  RequireSymbols?: boolean;
  RequireNumbers?: boolean;
  RequireUppercaseCharacters?: boolean;
  RequireLowercaseCharacters?: boolean;
  AllowUsersToChangePassword?: boolean;
  MaxPasswordAge?: number;
  PasswordReusePrevention?: number;
  HardExpiry?: boolean;
}

enum SummaryKeyType {
  Users = "Users",
  UsersQuota = "UsersQuota",
  Groups = "Groups",
  GroupsQuota = "GroupsQuota",
  Roles = "Roles",
  RolesQuota = "RolesQuota",
  Policies = "Policies",
  PoliciesQuota = "PoliciesQuota",
  MFADevices = "MFADevices",
  MFADevicesInUse = "MFADevicesInUse",
  AccountAccessKeysPresent = "AccountAccessKeysPresent",
  AccountSigningCertificatesPresent = "AccountSigningCertificatesPresent"
}

enum GlobalEndpointTokenVersion {
  v1Token = "v1Token",
  v2Token = "v2Token"
}

enum EntityType {
  User = "User",
  Role = "Role",
  Group = "Group",
  LocalManagedPolicy = "LocalManagedPolicy",
  AWSManagedPolicy = "AWSManagedPolicy"
}

Security Best Practices

Password Policy Configuration

Strong Password Requirements:

const strongPasswordPolicy = {
  MinimumPasswordLength: 14,
  RequireSymbols: true,
  RequireNumbers: true,
  RequireUppercaseCharacters: true,
  RequireLowercaseCharacters: true,
  AllowUsersToChangePassword: true,
  MaxPasswordAge: 60,
  PasswordReusePrevention: 24,
  HardExpiry: false
};

Key Recommendations:

  • Set minimum password length to at least 12 characters (14+ recommended)
  • Require all character types (uppercase, lowercase, numbers, symbols)
  • Allow users to change their own passwords for flexibility
  • Set reasonable password expiration (60-90 days)
  • Prevent reuse of recent passwords (12-24 previous passwords)
  • Avoid hard expiry to prevent service disruptions

Account Monitoring

Regular Auditing:

  • Review account summary regularly to monitor IAM entity usage
  • Set up CloudWatch alarms for unusual activity patterns
  • Use GetAccountAuthorizationDetails for comprehensive audits
  • Monitor account alias changes for unauthorized modifications

Compliance and Governance:

  • Document password policy decisions and review periodically
  • Ensure password policies meet organizational security standards
  • Track Organizations root account management changes
  • Maintain audit trails for all account-level modifications

Account Alias Management

Naming Conventions:

  • Use descriptive, consistent naming patterns
  • Include environment indicators (prod, staging, dev)
  • Avoid sensitive information in aliases
  • Consider organizational hierarchy in naming

Security Considerations:

  • Limit who can create or modify account aliases
  • Monitor alias changes through CloudTrail
  • Use aliases that don't reveal internal organizational structure to external parties