@csermet/multiprovider
Version:
cloud-graph provider plugin for AWS used to fetch AWS cloud data.
60 lines (59 loc) • 2.01 kB
TypeScript
import IAM, { AccessKeyLastUsed, AccessKeyMetadata, AttachedPolicy, MFADevice, User, VirtualMFADevice } from 'aws-sdk/clients/iam';
import { Config } from 'aws-sdk/lib/config';
import { TagMap } from '../../types';
export interface RawAwsAccessKey extends AccessKeyMetadata {
AccessKeyLastUsed: AccessKeyLastUsed;
}
export interface RawAwsIamUserReport {
User: string;
Arn: string;
UserCreationTime: string;
PasswordEnabled: string;
PasswordLastUsed: string;
PasswordLastChanged: string;
PasswordNextRotation: string;
MfaActive: string;
AccessKey1Active: string;
AccessKey1LastRotated: string;
AccessKey1LastUsedDate: string;
AccessKey1LastUsedRegion: string;
AccessKey1LastUsedService: string;
AccessKey2Active: string;
AccessKey2LastRotated: string;
AccessKey2LastUsedDate: string;
AccessKey2LastUsedRegion: string;
AccessKey2LastUsedService: string;
Cert1Active: string;
Cert1LastRotated: string;
Cert2Active: string;
Cert2LastRotated: string;
}
export interface RawAwsIamUser extends Omit<User, 'Tags'> {
AccessKeyLastUsedData: RawAwsAccessKey[];
MFADevices: MFADevice[];
VirtualMFADevices?: VirtualMFADevice[];
Groups: string[];
Policies: string[];
ManagedPolicies: AttachedPolicy[];
ReportData?: RawAwsIamUserReport;
region: string;
Tags?: TagMap;
}
export declare const listMFADevicesByUsername: (iam: IAM, user: User, marker?: string) => Promise<{
UserName: string;
MFADevices: MFADevice[];
}>;
export declare const listVirtualMFADevices: (iam: IAM) => Promise<VirtualMFADevice[]>;
export declare const listIamUsers: (iam: IAM, marker?: string) => Promise<RawAwsIamUser[]>;
export declare const getCredentialReportData: (iam: IAM) => Promise<RawAwsIamUserReport[]>;
declare const _default: ({ config, }: {
regions: string;
config: Config;
rawData: any;
}) => Promise<{
[region: string]: RawAwsIamUser[];
}>;
/**
* IAM User
*/
export default _default;