@ts-cloud/core 0.2.3 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/advanced-features.test.d.ts +1 -0
- package/dist/aws/cloudformation.d.ts +136 -0
- package/dist/aws/cloudfront.d.ts +45 -0
- package/dist/aws/credentials.d.ts +77 -0
- package/dist/aws/credentials.test.d.ts +4 -0
- package/dist/aws/index.d.ts +10 -0
- package/dist/aws/s3.d.ts +256 -0
- package/dist/aws/s3.test.d.ts +4 -0
- package/dist/aws/signature.d.ts +142 -0
- package/dist/aws/signature.test.d.ts +4 -0
- package/dist/backup/disaster-recovery.d.ts +140 -0
- package/dist/backup/disaster-recovery.test.d.ts +1 -0
- package/dist/backup/index.d.ts +8 -0
- package/dist/backup/manager.d.ts +172 -0
- package/dist/backup/manager.test.d.ts +1 -0
- package/dist/cicd/circleci.d.ts +50 -0
- package/dist/cicd/github-actions.d.ts +62 -0
- package/dist/cicd/gitlab-ci.d.ts +50 -0
- package/dist/cicd/index.d.ts +7 -0
- package/dist/cli/history.d.ts +137 -0
- package/dist/cli/index.d.ts +9 -0
- package/dist/cli/progress.d.ts +193 -0
- package/dist/cli/repl.d.ts +148 -0
- package/dist/cli/suggestions.d.ts +74 -0
- package/dist/cli/table.d.ts +73 -0
- package/dist/cli/table.test.d.ts +1 -0
- package/dist/cloudformation/builder.d.ts +93 -0
- package/dist/cloudformation/builder.test.d.ts +4 -0
- package/dist/cloudformation/builders/api-gateway.d.ts +30 -0
- package/dist/cloudformation/builders/cache.d.ts +35 -0
- package/dist/cloudformation/builders/cdn.d.ts +34 -0
- package/dist/cloudformation/builders/compute.d.ts +68 -0
- package/dist/cloudformation/builders/database.d.ts +61 -0
- package/dist/cloudformation/builders/functions.d.ts +32 -0
- package/dist/cloudformation/builders/messaging.d.ts +17 -0
- package/dist/cloudformation/builders/monitoring.d.ts +39 -0
- package/dist/cloudformation/builders/network.d.ts +14 -0
- package/dist/cloudformation/builders/queue.d.ts +16 -0
- package/dist/cloudformation/builders/security.d.ts +31 -0
- package/dist/cloudformation/builders/storage.d.ts +36 -0
- package/dist/cloudformation/index.d.ts +10 -0
- package/dist/cloudformation/types.d.ts +200 -0
- package/dist/compliance/aws-config.d.ts +175 -0
- package/dist/compliance/cloudtrail.d.ts +132 -0
- package/dist/compliance/compliance.test.d.ts +1 -0
- package/dist/compliance/guardduty.d.ts +176 -0
- package/dist/compliance/index.d.ts +12 -0
- package/dist/compliance/security-hub.d.ts +178 -0
- package/dist/containers/build-optimization.d.ts +155 -0
- package/dist/containers/containers.test.d.ts +1 -0
- package/dist/containers/image-scanning.d.ts +144 -0
- package/dist/containers/index.d.ts +8 -0
- package/dist/containers/registry.d.ts +129 -0
- package/dist/containers/service-mesh.d.ts +254 -0
- package/dist/database/database.test.d.ts +1 -0
- package/dist/database/index.d.ts +8 -0
- package/dist/database/migrations.d.ts +153 -0
- package/dist/database/performance.d.ts +219 -0
- package/dist/database/replicas.d.ts +218 -0
- package/dist/database/users.d.ts +165 -0
- package/dist/dependency-graph.d.ts +37 -0
- package/dist/deployment/ab-testing.d.ts +165 -0
- package/dist/deployment/blue-green.d.ts +140 -0
- package/dist/deployment/canary.d.ts +165 -0
- package/dist/deployment/deployment.test.d.ts +1 -0
- package/dist/deployment/index.d.ts +12 -0
- package/dist/deployment/progressive.d.ts +50 -0
- package/dist/dns/dns.test.d.ts +1 -0
- package/dist/dns/dnssec.d.ts +120 -0
- package/dist/dns/index.d.ts +7 -0
- package/dist/dns/resolver.d.ts +216 -0
- package/dist/dns/routing.d.ts +277 -0
- package/dist/email/advanced/analytics.d.ts +107 -0
- package/dist/email/advanced/index.d.ts +10 -0
- package/dist/email/advanced/rules.d.ts +131 -0
- package/dist/email/advanced/scheduling.d.ts +81 -0
- package/dist/email/advanced/search.d.ts +91 -0
- package/dist/email/advanced/shared-mailboxes.d.ts +109 -0
- package/dist/email/advanced/templates.d.ts +95 -0
- package/dist/email/advanced/threading.d.ts +65 -0
- package/dist/email/analytics.d.ts +189 -0
- package/dist/email/bounce-handling.d.ts +171 -0
- package/dist/email/email.test.d.ts +1 -0
- package/dist/email/handlers/__tests__/inbound.test.d.ts +1 -0
- package/dist/email/handlers/__tests__/outbound.test.d.ts +1 -0
- package/dist/email/handlers/converter.d.ts +11 -0
- package/dist/email/handlers/feedback.d.ts +11 -0
- package/dist/email/handlers/inbound.d.ts +13 -0
- package/dist/email/handlers/outbound.d.ts +13 -0
- package/dist/email/index.d.ts +10 -0
- package/dist/email/reputation.d.ts +133 -0
- package/dist/email/templates.d.ts +124 -0
- package/dist/errors/index.d.ts +177 -0
- package/dist/errors/index.test.d.ts +4 -0
- package/dist/health-checks/index.d.ts +35 -0
- package/dist/index.d.ts +15 -256
- package/dist/index.js +228 -80
- package/dist/intrinsic-functions.d.ts +77 -0
- package/dist/lambda/concurrency.d.ts +146 -0
- package/dist/lambda/destinations.d.ts +141 -0
- package/dist/lambda/dlq.d.ts +160 -0
- package/dist/lambda/index.d.ts +10 -0
- package/dist/lambda/lambda.test.d.ts +1 -0
- package/dist/lambda/layers.d.ts +117 -0
- package/dist/lambda/versions.d.ts +145 -0
- package/dist/lambda/vpc.d.ts +164 -0
- package/dist/local/config.d.ts +44 -0
- package/dist/local/index.d.ts +5 -0
- package/dist/local/mock-aws.d.ts +69 -0
- package/dist/modules/ai.d.ts +108 -0
- package/dist/modules/api.d.ts +157 -0
- package/dist/modules/auth.d.ts +262 -0
- package/dist/modules/cache.d.ts +108 -0
- package/dist/modules/cdn.d.ts +305 -0
- package/dist/modules/communication.d.ts +117 -0
- package/dist/modules/compute.d.ts +1376 -0
- package/dist/modules/database.d.ts +144 -0
- package/dist/modules/deployment.d.ts +372 -0
- package/dist/modules/dns.d.ts +143 -0
- package/dist/modules/email.d.ts +314 -0
- package/dist/modules/filesystem.d.ts +132 -0
- package/dist/modules/index.d.ts +31 -0
- package/dist/modules/messaging.d.ts +210 -0
- package/dist/modules/monitoring.d.ts +574 -0
- package/dist/modules/network.d.ts +148 -0
- package/dist/modules/parameter-store.d.ts +143 -0
- package/dist/modules/permissions.d.ts +245 -0
- package/dist/modules/phone.d.ts +125 -0
- package/dist/modules/queue.d.ts +411 -0
- package/dist/modules/redirects.d.ts +140 -0
- package/dist/modules/registry.d.ts +189 -0
- package/dist/modules/search.d.ts +135 -0
- package/dist/modules/secrets.d.ts +149 -0
- package/dist/modules/security.d.ts +219 -0
- package/dist/modules/sms.d.ts +130 -0
- package/dist/modules/storage.d.ts +344 -0
- package/dist/modules/workflow.d.ts +288 -0
- package/dist/multi-account/config.d.ts +166 -0
- package/dist/multi-account/index.d.ts +6 -0
- package/dist/multi-account/manager.d.ts +181 -0
- package/dist/multi-region/cross-region.d.ts +204 -0
- package/dist/multi-region/index.d.ts +7 -0
- package/dist/multi-region/manager.d.ts +136 -0
- package/dist/multi-region/regions.d.ts +98 -0
- package/dist/network-security/index.d.ts +55 -0
- package/dist/observability/index.d.ts +8 -0
- package/dist/observability/logs.d.ts +213 -0
- package/dist/observability/metrics.d.ts +187 -0
- package/dist/observability/observability.test.d.ts +1 -0
- package/dist/observability/synthetics.d.ts +189 -0
- package/dist/observability/xray.d.ts +193 -0
- package/dist/phone/advanced/analytics.d.ts +83 -0
- package/dist/phone/advanced/callbacks.d.ts +67 -0
- package/dist/phone/advanced/index.d.ts +7 -0
- package/dist/phone/advanced/ivr-builder.d.ts +130 -0
- package/dist/phone/advanced/recording.d.ts +62 -0
- package/dist/phone/handlers/__tests__/incoming-call.test.d.ts +1 -0
- package/dist/phone/handlers/incoming-call.d.ts +10 -0
- package/dist/phone/handlers/missed-call.d.ts +9 -0
- package/dist/phone/handlers/voicemail.d.ts +10 -0
- package/dist/phone/index.d.ts +5 -0
- package/dist/presets/api-backend.d.ts +11 -0
- package/dist/presets/data-pipeline.d.ts +11 -0
- package/dist/presets/extend.d.ts +194 -0
- package/dist/presets/extend.test.d.ts +4 -0
- package/dist/presets/fullstack-app.d.ts +12 -0
- package/dist/presets/index.d.ts +13 -0
- package/dist/presets/jamstack.d.ts +12 -0
- package/dist/presets/microservices.d.ts +18 -0
- package/dist/presets/ml-api.d.ts +13 -0
- package/dist/presets/nodejs-server.d.ts +14 -0
- package/dist/presets/nodejs-serverless.d.ts +14 -0
- package/dist/presets/realtime-app.d.ts +11 -0
- package/dist/presets/static-site.d.ts +12 -0
- package/dist/presets/traditional-web-app.d.ts +16 -0
- package/dist/presets/wordpress.d.ts +12 -0
- package/dist/preview/github.d.ts +32 -0
- package/dist/preview/github.test.d.ts +1 -0
- package/dist/preview/index.d.ts +10 -0
- package/dist/preview/manager.d.ts +101 -0
- package/dist/preview/manager.test.d.ts +1 -0
- package/dist/preview/notifications.d.ts +89 -0
- package/dist/preview/notifications.test.d.ts +1 -0
- package/dist/queue/batch-processing.d.ts +138 -0
- package/dist/queue/dlq-monitoring.d.ts +143 -0
- package/dist/queue/fifo.d.ts +131 -0
- package/dist/queue/index.d.ts +8 -0
- package/dist/queue/management.d.ts +162 -0
- package/dist/queue/queue.test.d.ts +1 -0
- package/dist/resource-mgmt/index.d.ts +44 -0
- package/dist/resource-naming.d.ts +26 -0
- package/dist/s3/index.d.ts +227 -0
- package/dist/schema/index.d.ts +12 -0
- package/dist/security/certificate-manager.d.ts +184 -0
- package/dist/security/index.d.ts +8 -0
- package/dist/security/scanning.d.ts +196 -0
- package/dist/security/secrets-manager.d.ts +204 -0
- package/dist/security/secrets-rotation.d.ts +167 -0
- package/dist/security/security.test.d.ts +1 -0
- package/dist/sms/advanced/ab-testing.d.ts +74 -0
- package/dist/sms/advanced/analytics.d.ts +75 -0
- package/dist/sms/advanced/campaigns.d.ts +96 -0
- package/dist/sms/advanced/chatbot.d.ts +67 -0
- package/dist/sms/advanced/index.d.ts +9 -0
- package/dist/sms/advanced/link-tracking.d.ts +60 -0
- package/dist/sms/advanced/mms.d.ts +60 -0
- package/dist/sms/handlers/__tests__/send.test.d.ts +1 -0
- package/dist/sms/handlers/delivery-status.d.ts +10 -0
- package/dist/sms/handlers/receive.d.ts +10 -0
- package/dist/sms/handlers/send.d.ts +10 -0
- package/dist/sms/index.d.ts +5 -0
- package/dist/stack-diff.d.ts +38 -0
- package/dist/static-site/index.d.ts +49 -0
- package/dist/template-builder.d.ts +42 -0
- package/dist/template-validator.d.ts +28 -0
- package/dist/types.d.ts +2514 -0
- package/dist/utils/cache.d.ts +117 -0
- package/dist/utils/diff.d.ts +52 -0
- package/dist/utils/hash.d.ts +73 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/parallel.d.ts +78 -0
- package/dist/validators/credentials.d.ts +30 -0
- package/dist/validators/credentials.test.d.ts +4 -0
- package/dist/validators/quotas.d.ts +64 -0
- package/dist/validators/quotas.test.d.ts +4 -0
- package/package.json +2 -2
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWS Config Rules
|
|
3
|
+
* Automated compliance checking and configuration management
|
|
4
|
+
*/
|
|
5
|
+
export interface ConfigRule {
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
source: 'AWS_MANAGED' | 'CUSTOM_LAMBDA';
|
|
10
|
+
identifier?: string;
|
|
11
|
+
lambdaFunctionArn?: string;
|
|
12
|
+
inputParameters?: Record<string, any>;
|
|
13
|
+
scope?: ConfigScope;
|
|
14
|
+
maxExecutionFrequency?: 'One_Hour' | 'Three_Hours' | 'Six_Hours' | 'Twelve_Hours' | 'TwentyFour_Hours';
|
|
15
|
+
}
|
|
16
|
+
export interface ConfigScope {
|
|
17
|
+
complianceResourceTypes?: string[];
|
|
18
|
+
tagKey?: string;
|
|
19
|
+
tagValue?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface ConfigRecorder {
|
|
22
|
+
name: string;
|
|
23
|
+
roleArn: string;
|
|
24
|
+
recordingGroup?: RecordingGroup;
|
|
25
|
+
}
|
|
26
|
+
export interface RecordingGroup {
|
|
27
|
+
allSupported?: boolean;
|
|
28
|
+
includeGlobalResourceTypes?: boolean;
|
|
29
|
+
resourceTypes?: string[];
|
|
30
|
+
}
|
|
31
|
+
export interface DeliveryChannel {
|
|
32
|
+
name: string;
|
|
33
|
+
s3BucketName: string;
|
|
34
|
+
s3KeyPrefix?: string;
|
|
35
|
+
snsTopicArn?: string;
|
|
36
|
+
configSnapshotDeliveryProperties?: {
|
|
37
|
+
deliveryFrequency?: 'One_Hour' | 'Three_Hours' | 'Six_Hours' | 'Twelve_Hours' | 'TwentyFour_Hours';
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* AWS Config manager
|
|
42
|
+
*/
|
|
43
|
+
export declare class AWSConfigManager {
|
|
44
|
+
private configRules;
|
|
45
|
+
private configRecorders;
|
|
46
|
+
private deliveryChannels;
|
|
47
|
+
private ruleCounter;
|
|
48
|
+
/**
|
|
49
|
+
* Create config recorder
|
|
50
|
+
*/
|
|
51
|
+
createConfigRecorder(recorder: ConfigRecorder): ConfigRecorder;
|
|
52
|
+
/**
|
|
53
|
+
* Create delivery channel
|
|
54
|
+
*/
|
|
55
|
+
createDeliveryChannel(channel: DeliveryChannel): DeliveryChannel;
|
|
56
|
+
/**
|
|
57
|
+
* Create config rule
|
|
58
|
+
*/
|
|
59
|
+
createConfigRule(rule: Omit<ConfigRule, 'id'>): ConfigRule;
|
|
60
|
+
/**
|
|
61
|
+
* Create S3 bucket encryption rule
|
|
62
|
+
*/
|
|
63
|
+
createS3EncryptionRule(): ConfigRule;
|
|
64
|
+
/**
|
|
65
|
+
* Create S3 bucket public access block rule
|
|
66
|
+
*/
|
|
67
|
+
createS3PublicAccessBlockRule(): ConfigRule;
|
|
68
|
+
/**
|
|
69
|
+
* Create S3 bucket versioning rule
|
|
70
|
+
*/
|
|
71
|
+
createS3VersioningRule(): ConfigRule;
|
|
72
|
+
/**
|
|
73
|
+
* Create RDS encryption rule
|
|
74
|
+
*/
|
|
75
|
+
createRdsEncryptionRule(): ConfigRule;
|
|
76
|
+
/**
|
|
77
|
+
* Create RDS snapshot encryption rule
|
|
78
|
+
*/
|
|
79
|
+
createRdsSnapshotEncryptionRule(): ConfigRule;
|
|
80
|
+
/**
|
|
81
|
+
* Create RDS backup rule
|
|
82
|
+
*/
|
|
83
|
+
createRdsBackupRule(retentionPeriod?: number): ConfigRule;
|
|
84
|
+
/**
|
|
85
|
+
* Create EC2 instance profile rule
|
|
86
|
+
*/
|
|
87
|
+
createEc2InstanceProfileRule(): ConfigRule;
|
|
88
|
+
/**
|
|
89
|
+
* Create EBS encryption rule
|
|
90
|
+
*/
|
|
91
|
+
createEbsEncryptionRule(): ConfigRule;
|
|
92
|
+
/**
|
|
93
|
+
* Create IAM password policy rule
|
|
94
|
+
*/
|
|
95
|
+
createIamPasswordPolicyRule(): ConfigRule;
|
|
96
|
+
/**
|
|
97
|
+
* Create IAM MFA rule
|
|
98
|
+
*/
|
|
99
|
+
createIamMfaRule(): ConfigRule;
|
|
100
|
+
/**
|
|
101
|
+
* Create IAM root account MFA rule
|
|
102
|
+
*/
|
|
103
|
+
createRootAccountMfaRule(): ConfigRule;
|
|
104
|
+
/**
|
|
105
|
+
* Create VPC flow logs rule
|
|
106
|
+
*/
|
|
107
|
+
createVpcFlowLogsRule(): ConfigRule;
|
|
108
|
+
/**
|
|
109
|
+
* Create CloudTrail enabled rule
|
|
110
|
+
*/
|
|
111
|
+
createCloudTrailEnabledRule(): ConfigRule;
|
|
112
|
+
/**
|
|
113
|
+
* Create CloudWatch alarm rule
|
|
114
|
+
*/
|
|
115
|
+
createCloudWatchAlarmRule(): ConfigRule;
|
|
116
|
+
/**
|
|
117
|
+
* Create custom Lambda rule
|
|
118
|
+
*/
|
|
119
|
+
createCustomLambdaRule(options: {
|
|
120
|
+
name: string;
|
|
121
|
+
description: string;
|
|
122
|
+
lambdaFunctionArn: string;
|
|
123
|
+
resourceTypes?: string[];
|
|
124
|
+
maxExecutionFrequency?: ConfigRule['maxExecutionFrequency'];
|
|
125
|
+
inputParameters?: Record<string, any>;
|
|
126
|
+
}): ConfigRule;
|
|
127
|
+
/**
|
|
128
|
+
* Create compliance preset rules
|
|
129
|
+
*/
|
|
130
|
+
createCompliancePreset(preset: 'hipaa' | 'pci-dss' | 'sox' | 'gdpr' | 'basic'): ConfigRule[];
|
|
131
|
+
/**
|
|
132
|
+
* Get config rule
|
|
133
|
+
*/
|
|
134
|
+
getConfigRule(id: string): ConfigRule | undefined;
|
|
135
|
+
/**
|
|
136
|
+
* List config rules
|
|
137
|
+
*/
|
|
138
|
+
listConfigRules(): ConfigRule[];
|
|
139
|
+
/**
|
|
140
|
+
* Get config recorder
|
|
141
|
+
*/
|
|
142
|
+
getConfigRecorder(name: string): ConfigRecorder | undefined;
|
|
143
|
+
/**
|
|
144
|
+
* List config recorders
|
|
145
|
+
*/
|
|
146
|
+
listConfigRecorders(): ConfigRecorder[];
|
|
147
|
+
/**
|
|
148
|
+
* Get delivery channel
|
|
149
|
+
*/
|
|
150
|
+
getDeliveryChannel(name: string): DeliveryChannel | undefined;
|
|
151
|
+
/**
|
|
152
|
+
* List delivery channels
|
|
153
|
+
*/
|
|
154
|
+
listDeliveryChannels(): DeliveryChannel[];
|
|
155
|
+
/**
|
|
156
|
+
* Generate CloudFormation for config rule
|
|
157
|
+
*/
|
|
158
|
+
generateConfigRuleCF(rule: ConfigRule): any;
|
|
159
|
+
/**
|
|
160
|
+
* Generate CloudFormation for config recorder
|
|
161
|
+
*/
|
|
162
|
+
generateConfigRecorderCF(recorder: ConfigRecorder): any;
|
|
163
|
+
/**
|
|
164
|
+
* Generate CloudFormation for delivery channel
|
|
165
|
+
*/
|
|
166
|
+
generateDeliveryChannelCF(channel: DeliveryChannel): any;
|
|
167
|
+
/**
|
|
168
|
+
* Clear all data
|
|
169
|
+
*/
|
|
170
|
+
clear(): void;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Global AWS Config manager instance
|
|
174
|
+
*/
|
|
175
|
+
export declare const awsConfigManager: AWSConfigManager;
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWS CloudTrail Configuration
|
|
3
|
+
* API logging and auditing for security and compliance
|
|
4
|
+
*/
|
|
5
|
+
export interface CloudTrailConfig {
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
s3BucketName: string;
|
|
9
|
+
s3KeyPrefix?: string;
|
|
10
|
+
includeGlobalServiceEvents?: boolean;
|
|
11
|
+
isMultiRegionTrail?: boolean;
|
|
12
|
+
enableLogFileValidation?: boolean;
|
|
13
|
+
cloudWatchLogsLogGroupArn?: string;
|
|
14
|
+
cloudWatchLogsRoleArn?: string;
|
|
15
|
+
snsTopicName?: string;
|
|
16
|
+
kmsKeyId?: string;
|
|
17
|
+
eventSelectors?: EventSelector[];
|
|
18
|
+
insightSelectors?: InsightSelector[];
|
|
19
|
+
advancedEventSelectors?: AdvancedEventSelector[];
|
|
20
|
+
}
|
|
21
|
+
export interface EventSelector {
|
|
22
|
+
readWriteType: 'ReadOnly' | 'WriteOnly' | 'All';
|
|
23
|
+
includeManagementEvents?: boolean;
|
|
24
|
+
dataResources?: DataResource[];
|
|
25
|
+
excludeManagementEventSources?: string[];
|
|
26
|
+
}
|
|
27
|
+
export interface DataResource {
|
|
28
|
+
type: string;
|
|
29
|
+
values: string[];
|
|
30
|
+
}
|
|
31
|
+
export interface InsightSelector {
|
|
32
|
+
insightType: 'ApiCallRateInsight' | 'ApiErrorRateInsight';
|
|
33
|
+
}
|
|
34
|
+
export interface AdvancedEventSelector {
|
|
35
|
+
name: string;
|
|
36
|
+
fieldSelectors: FieldSelector[];
|
|
37
|
+
}
|
|
38
|
+
export interface FieldSelector {
|
|
39
|
+
field: string;
|
|
40
|
+
equals?: string[];
|
|
41
|
+
startsWith?: string[];
|
|
42
|
+
endsWith?: string[];
|
|
43
|
+
notEquals?: string[];
|
|
44
|
+
notStartsWith?: string[];
|
|
45
|
+
notEndsWith?: string[];
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* CloudTrail manager
|
|
49
|
+
*/
|
|
50
|
+
export declare class CloudTrailManager {
|
|
51
|
+
private trails;
|
|
52
|
+
private trailCounter;
|
|
53
|
+
/**
|
|
54
|
+
* Create CloudTrail
|
|
55
|
+
*/
|
|
56
|
+
createTrail(trail: Omit<CloudTrailConfig, 'id'>): CloudTrailConfig;
|
|
57
|
+
/**
|
|
58
|
+
* Create organization trail
|
|
59
|
+
*/
|
|
60
|
+
createOrganizationTrail(options: {
|
|
61
|
+
name: string;
|
|
62
|
+
s3BucketName: string;
|
|
63
|
+
kmsKeyId?: string;
|
|
64
|
+
cloudWatchLogsLogGroupArn?: string;
|
|
65
|
+
cloudWatchLogsRoleArn?: string;
|
|
66
|
+
}): CloudTrailConfig;
|
|
67
|
+
/**
|
|
68
|
+
* Create security audit trail
|
|
69
|
+
*/
|
|
70
|
+
createSecurityAuditTrail(options: {
|
|
71
|
+
name: string;
|
|
72
|
+
s3BucketName: string;
|
|
73
|
+
kmsKeyId: string;
|
|
74
|
+
cloudWatchLogsLogGroupArn: string;
|
|
75
|
+
cloudWatchLogsRoleArn: string;
|
|
76
|
+
}): CloudTrailConfig;
|
|
77
|
+
/**
|
|
78
|
+
* Create data events trail (S3 and Lambda)
|
|
79
|
+
*/
|
|
80
|
+
createDataEventsTrail(options: {
|
|
81
|
+
name: string;
|
|
82
|
+
s3BucketName: string;
|
|
83
|
+
s3DataBuckets?: string[];
|
|
84
|
+
lambdaFunctions?: string[];
|
|
85
|
+
}): CloudTrailConfig;
|
|
86
|
+
/**
|
|
87
|
+
* Create advanced event selectors trail
|
|
88
|
+
*/
|
|
89
|
+
createAdvancedTrail(options: {
|
|
90
|
+
name: string;
|
|
91
|
+
s3BucketName: string;
|
|
92
|
+
selectors: AdvancedEventSelector[];
|
|
93
|
+
}): CloudTrailConfig;
|
|
94
|
+
/**
|
|
95
|
+
* Create read-only trail
|
|
96
|
+
*/
|
|
97
|
+
createReadOnlyTrail(options: {
|
|
98
|
+
name: string;
|
|
99
|
+
s3BucketName: string;
|
|
100
|
+
}): CloudTrailConfig;
|
|
101
|
+
/**
|
|
102
|
+
* Create write-only trail
|
|
103
|
+
*/
|
|
104
|
+
createWriteOnlyTrail(options: {
|
|
105
|
+
name: string;
|
|
106
|
+
s3BucketName: string;
|
|
107
|
+
}): CloudTrailConfig;
|
|
108
|
+
/**
|
|
109
|
+
* Get trail
|
|
110
|
+
*/
|
|
111
|
+
getTrail(id: string): CloudTrailConfig | undefined;
|
|
112
|
+
/**
|
|
113
|
+
* List trails
|
|
114
|
+
*/
|
|
115
|
+
listTrails(): CloudTrailConfig[];
|
|
116
|
+
/**
|
|
117
|
+
* Generate CloudFormation for trail
|
|
118
|
+
*/
|
|
119
|
+
generateTrailCF(trail: CloudTrailConfig): any;
|
|
120
|
+
/**
|
|
121
|
+
* Generate CloudTrail bucket policy
|
|
122
|
+
*/
|
|
123
|
+
generateBucketPolicy(bucketName: string, trailAccountIds: string[]): any;
|
|
124
|
+
/**
|
|
125
|
+
* Clear all data
|
|
126
|
+
*/
|
|
127
|
+
clear(): void;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Global CloudTrail manager instance
|
|
131
|
+
*/
|
|
132
|
+
export declare const cloudTrailManager: CloudTrailManager;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWS GuardDuty
|
|
3
|
+
* Intelligent threat detection and continuous monitoring
|
|
4
|
+
*/
|
|
5
|
+
export interface GuardDutyDetector {
|
|
6
|
+
id: string;
|
|
7
|
+
enable: boolean;
|
|
8
|
+
findingPublishingFrequency?: 'FIFTEEN_MINUTES' | 'ONE_HOUR' | 'SIX_HOURS';
|
|
9
|
+
dataSources?: DataSourceConfigurations;
|
|
10
|
+
features?: DetectorFeature[];
|
|
11
|
+
}
|
|
12
|
+
export interface DataSourceConfigurations {
|
|
13
|
+
s3Logs?: {
|
|
14
|
+
enable: boolean;
|
|
15
|
+
};
|
|
16
|
+
kubernetes?: {
|
|
17
|
+
auditLogs: {
|
|
18
|
+
enable: boolean;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
malwareProtection?: {
|
|
22
|
+
scanEc2InstanceWithFindings: {
|
|
23
|
+
ebsVolumes: {
|
|
24
|
+
enable: boolean;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export interface DetectorFeature {
|
|
30
|
+
name: 'S3_DATA_EVENTS' | 'EKS_AUDIT_LOGS' | 'EBS_MALWARE_PROTECTION' | 'RDS_LOGIN_EVENTS' | 'LAMBDA_NETWORK_LOGS';
|
|
31
|
+
status: 'ENABLED' | 'DISABLED';
|
|
32
|
+
additionalConfiguration?: {
|
|
33
|
+
name: string;
|
|
34
|
+
status: 'ENABLED' | 'DISABLED';
|
|
35
|
+
}[];
|
|
36
|
+
}
|
|
37
|
+
export interface ThreatIntelSet {
|
|
38
|
+
id: string;
|
|
39
|
+
detectorId: string;
|
|
40
|
+
name: string;
|
|
41
|
+
format: 'TXT' | 'STIX' | 'OTX_CSV' | 'ALIEN_VAULT' | 'PROOF_POINT' | 'FIRE_EYE';
|
|
42
|
+
location: string;
|
|
43
|
+
activate: boolean;
|
|
44
|
+
}
|
|
45
|
+
export interface IPSet {
|
|
46
|
+
id: string;
|
|
47
|
+
detectorId: string;
|
|
48
|
+
name: string;
|
|
49
|
+
format: 'TXT' | 'STIX' | 'OTX_CSV' | 'ALIEN_VAULT' | 'PROOF_POINT' | 'FIRE_EYE';
|
|
50
|
+
location: string;
|
|
51
|
+
activate: boolean;
|
|
52
|
+
}
|
|
53
|
+
export interface FindingFilter {
|
|
54
|
+
id: string;
|
|
55
|
+
detectorId: string;
|
|
56
|
+
name: string;
|
|
57
|
+
description?: string;
|
|
58
|
+
action: 'NOOP' | 'ARCHIVE';
|
|
59
|
+
rank: number;
|
|
60
|
+
findingCriteria: FindingCriteria;
|
|
61
|
+
}
|
|
62
|
+
export interface FindingCriteria {
|
|
63
|
+
criterion: Record<string, {
|
|
64
|
+
eq?: string[];
|
|
65
|
+
neq?: string[];
|
|
66
|
+
gt?: number;
|
|
67
|
+
gte?: number;
|
|
68
|
+
lt?: number;
|
|
69
|
+
lte?: number;
|
|
70
|
+
}>;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* GuardDuty manager
|
|
74
|
+
*/
|
|
75
|
+
export declare class GuardDutyManager {
|
|
76
|
+
private detectors;
|
|
77
|
+
private threatIntelSets;
|
|
78
|
+
private ipSets;
|
|
79
|
+
private filters;
|
|
80
|
+
private detectorCounter;
|
|
81
|
+
private threatIntelCounter;
|
|
82
|
+
private ipSetCounter;
|
|
83
|
+
private filterCounter;
|
|
84
|
+
/**
|
|
85
|
+
* Create GuardDuty detector
|
|
86
|
+
*/
|
|
87
|
+
createDetector(detector: Omit<GuardDutyDetector, 'id'>): GuardDutyDetector;
|
|
88
|
+
/**
|
|
89
|
+
* Create comprehensive detector with all features
|
|
90
|
+
*/
|
|
91
|
+
createComprehensiveDetector(): GuardDutyDetector;
|
|
92
|
+
/**
|
|
93
|
+
* Create basic detector
|
|
94
|
+
*/
|
|
95
|
+
createBasicDetector(): GuardDutyDetector;
|
|
96
|
+
/**
|
|
97
|
+
* Create threat intel set
|
|
98
|
+
*/
|
|
99
|
+
createThreatIntelSet(set: Omit<ThreatIntelSet, 'id'>): ThreatIntelSet;
|
|
100
|
+
/**
|
|
101
|
+
* Create IP set
|
|
102
|
+
*/
|
|
103
|
+
createIPSet(set: Omit<IPSet, 'id'>): IPSet;
|
|
104
|
+
/**
|
|
105
|
+
* Create finding filter
|
|
106
|
+
*/
|
|
107
|
+
createFindingFilter(filter: Omit<FindingFilter, 'id'>): FindingFilter;
|
|
108
|
+
/**
|
|
109
|
+
* Create auto-archive filter for low severity findings
|
|
110
|
+
*/
|
|
111
|
+
createLowSeverityArchiveFilter(detectorId: string): FindingFilter;
|
|
112
|
+
/**
|
|
113
|
+
* Create filter for specific finding types
|
|
114
|
+
*/
|
|
115
|
+
createFindingTypeFilter(detectorId: string, findingTypes: string[], action: 'NOOP' | 'ARCHIVE'): FindingFilter;
|
|
116
|
+
/**
|
|
117
|
+
* Create filter for trusted IP addresses
|
|
118
|
+
*/
|
|
119
|
+
createTrustedIPFilter(detectorId: string, ipAddresses: string[]): FindingFilter;
|
|
120
|
+
/**
|
|
121
|
+
* Get detector
|
|
122
|
+
*/
|
|
123
|
+
getDetector(id: string): GuardDutyDetector | undefined;
|
|
124
|
+
/**
|
|
125
|
+
* List detectors
|
|
126
|
+
*/
|
|
127
|
+
listDetectors(): GuardDutyDetector[];
|
|
128
|
+
/**
|
|
129
|
+
* Get threat intel set
|
|
130
|
+
*/
|
|
131
|
+
getThreatIntelSet(id: string): ThreatIntelSet | undefined;
|
|
132
|
+
/**
|
|
133
|
+
* List threat intel sets
|
|
134
|
+
*/
|
|
135
|
+
listThreatIntelSets(): ThreatIntelSet[];
|
|
136
|
+
/**
|
|
137
|
+
* Get IP set
|
|
138
|
+
*/
|
|
139
|
+
getIPSet(id: string): IPSet | undefined;
|
|
140
|
+
/**
|
|
141
|
+
* List IP sets
|
|
142
|
+
*/
|
|
143
|
+
listIPSets(): IPSet[];
|
|
144
|
+
/**
|
|
145
|
+
* Get finding filter
|
|
146
|
+
*/
|
|
147
|
+
getFindingFilter(id: string): FindingFilter | undefined;
|
|
148
|
+
/**
|
|
149
|
+
* List finding filters
|
|
150
|
+
*/
|
|
151
|
+
listFindingFilters(): FindingFilter[];
|
|
152
|
+
/**
|
|
153
|
+
* Generate CloudFormation for detector
|
|
154
|
+
*/
|
|
155
|
+
generateDetectorCF(detector: GuardDutyDetector): any;
|
|
156
|
+
/**
|
|
157
|
+
* Generate CloudFormation for threat intel set
|
|
158
|
+
*/
|
|
159
|
+
generateThreatIntelSetCF(set: ThreatIntelSet): any;
|
|
160
|
+
/**
|
|
161
|
+
* Generate CloudFormation for IP set
|
|
162
|
+
*/
|
|
163
|
+
generateIPSetCF(set: IPSet): any;
|
|
164
|
+
/**
|
|
165
|
+
* Generate CloudFormation for finding filter
|
|
166
|
+
*/
|
|
167
|
+
generateFilterCF(filter: FindingFilter): any;
|
|
168
|
+
/**
|
|
169
|
+
* Clear all data
|
|
170
|
+
*/
|
|
171
|
+
clear(): void;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Global GuardDuty manager instance
|
|
175
|
+
*/
|
|
176
|
+
export declare const guardDutyManager: GuardDutyManager;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compliance & Governance
|
|
3
|
+
* AWS Config, CloudTrail, GuardDuty, and Security Hub integrations
|
|
4
|
+
*/
|
|
5
|
+
export { AWSConfigManager, awsConfigManager, } from './aws-config';
|
|
6
|
+
export type { ConfigRule, ConfigScope, ConfigRecorder, RecordingGroup, DeliveryChannel, } from './aws-config';
|
|
7
|
+
export { CloudTrailManager, cloudTrailManager, } from './cloudtrail';
|
|
8
|
+
export type { CloudTrailConfig, EventSelector, DataResource, InsightSelector, AdvancedEventSelector, FieldSelector, } from './cloudtrail';
|
|
9
|
+
export { GuardDutyManager, guardDutyManager, } from './guardduty';
|
|
10
|
+
export type { GuardDutyDetector, DataSourceConfigurations, DetectorFeature, ThreatIntelSet, IPSet, FindingFilter, FindingCriteria, } from './guardduty';
|
|
11
|
+
export { SecurityHubManager, securityHubManager, } from './security-hub';
|
|
12
|
+
export type { SecurityHubConfig, SecurityStandard, AutomationRule, AutomationAction, AutomationCriteria, StringFilter, NumberFilter, MapFilter, } from './security-hub';
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWS Security Hub
|
|
3
|
+
* Centralized security and compliance view across AWS accounts
|
|
4
|
+
*/
|
|
5
|
+
export interface SecurityHubConfig {
|
|
6
|
+
id: string;
|
|
7
|
+
enable: boolean;
|
|
8
|
+
controlFindingGenerator?: 'STANDARD_CONTROL' | 'SECURITY_CONTROL';
|
|
9
|
+
enableDefaultStandards?: boolean;
|
|
10
|
+
standards?: SecurityStandard[];
|
|
11
|
+
automationRules?: AutomationRule[];
|
|
12
|
+
}
|
|
13
|
+
export interface SecurityStandard {
|
|
14
|
+
id: string;
|
|
15
|
+
arn: string;
|
|
16
|
+
name: string;
|
|
17
|
+
description: string;
|
|
18
|
+
enabled: boolean;
|
|
19
|
+
disabledControls?: string[];
|
|
20
|
+
}
|
|
21
|
+
export interface AutomationRule {
|
|
22
|
+
id: string;
|
|
23
|
+
ruleName: string;
|
|
24
|
+
description?: string;
|
|
25
|
+
actions: AutomationAction[];
|
|
26
|
+
criteria: AutomationCriteria;
|
|
27
|
+
ruleStatus: 'ENABLED' | 'DISABLED';
|
|
28
|
+
ruleOrder: number;
|
|
29
|
+
}
|
|
30
|
+
export interface AutomationAction {
|
|
31
|
+
type: 'FINDING_FIELDS_UPDATE';
|
|
32
|
+
findingFieldsUpdate: {
|
|
33
|
+
note?: {
|
|
34
|
+
text: string;
|
|
35
|
+
updatedBy: string;
|
|
36
|
+
};
|
|
37
|
+
severity?: {
|
|
38
|
+
label: 'INFORMATIONAL' | 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL';
|
|
39
|
+
};
|
|
40
|
+
workflow?: {
|
|
41
|
+
status: 'NEW' | 'NOTIFIED' | 'RESOLVED' | 'SUPPRESSED';
|
|
42
|
+
};
|
|
43
|
+
relatedFindings?: Array<{
|
|
44
|
+
productArn: string;
|
|
45
|
+
id: string;
|
|
46
|
+
}>;
|
|
47
|
+
userDefinedFields?: Record<string, string>;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export interface AutomationCriteria {
|
|
51
|
+
productName?: StringFilter[];
|
|
52
|
+
companyName?: StringFilter[];
|
|
53
|
+
severityLabel?: StringFilter[];
|
|
54
|
+
resourceType?: StringFilter[];
|
|
55
|
+
resourceId?: StringFilter[];
|
|
56
|
+
recordState?: StringFilter[];
|
|
57
|
+
workflowStatus?: StringFilter[];
|
|
58
|
+
complianceStatus?: StringFilter[];
|
|
59
|
+
verificationState?: StringFilter[];
|
|
60
|
+
confidence?: NumberFilter[];
|
|
61
|
+
criticality?: NumberFilter[];
|
|
62
|
+
title?: StringFilter[];
|
|
63
|
+
description?: StringFilter[];
|
|
64
|
+
sourceUrl?: StringFilter[];
|
|
65
|
+
productFields?: MapFilter[];
|
|
66
|
+
resourceTags?: MapFilter[];
|
|
67
|
+
userDefinedFields?: MapFilter[];
|
|
68
|
+
}
|
|
69
|
+
export interface StringFilter {
|
|
70
|
+
value: string;
|
|
71
|
+
comparison: 'EQUALS' | 'PREFIX' | 'NOT_EQUALS' | 'PREFIX_NOT_EQUALS';
|
|
72
|
+
}
|
|
73
|
+
export interface NumberFilter {
|
|
74
|
+
gte?: number;
|
|
75
|
+
lte?: number;
|
|
76
|
+
eq?: number;
|
|
77
|
+
gt?: number;
|
|
78
|
+
lt?: number;
|
|
79
|
+
}
|
|
80
|
+
export interface MapFilter {
|
|
81
|
+
key: string;
|
|
82
|
+
value?: string;
|
|
83
|
+
comparison: 'EQUALS' | 'NOT_EQUALS';
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Security Hub manager
|
|
87
|
+
*/
|
|
88
|
+
export declare class SecurityHubManager {
|
|
89
|
+
private hubs;
|
|
90
|
+
private hubCounter;
|
|
91
|
+
private ruleCounter;
|
|
92
|
+
/**
|
|
93
|
+
* Available security standards
|
|
94
|
+
*/
|
|
95
|
+
static readonly Standards: {
|
|
96
|
+
AWS_FOUNDATIONAL_SECURITY: {
|
|
97
|
+
arn: string;
|
|
98
|
+
name: string;
|
|
99
|
+
description: string;
|
|
100
|
+
};
|
|
101
|
+
CIS_AWS_FOUNDATIONS_1_2: {
|
|
102
|
+
arn: string;
|
|
103
|
+
name: string;
|
|
104
|
+
description: string;
|
|
105
|
+
};
|
|
106
|
+
CIS_AWS_FOUNDATIONS_1_4: {
|
|
107
|
+
arn: string;
|
|
108
|
+
name: string;
|
|
109
|
+
description: string;
|
|
110
|
+
};
|
|
111
|
+
PCI_DSS: {
|
|
112
|
+
arn: string;
|
|
113
|
+
name: string;
|
|
114
|
+
description: string;
|
|
115
|
+
};
|
|
116
|
+
NIST_800_53: {
|
|
117
|
+
arn: string;
|
|
118
|
+
name: string;
|
|
119
|
+
description: string;
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* Create Security Hub
|
|
124
|
+
*/
|
|
125
|
+
createHub(hub: Omit<SecurityHubConfig, 'id'>): SecurityHubConfig;
|
|
126
|
+
/**
|
|
127
|
+
* Create comprehensive Security Hub with all standards
|
|
128
|
+
*/
|
|
129
|
+
createComprehensiveHub(): SecurityHubConfig;
|
|
130
|
+
/**
|
|
131
|
+
* Create basic Security Hub
|
|
132
|
+
*/
|
|
133
|
+
createBasicHub(): SecurityHubConfig;
|
|
134
|
+
/**
|
|
135
|
+
* Create automation rule for low severity findings
|
|
136
|
+
*/
|
|
137
|
+
createLowSeveritySuppressionRule(): AutomationRule;
|
|
138
|
+
/**
|
|
139
|
+
* Create automation rule for specific resource types
|
|
140
|
+
*/
|
|
141
|
+
createResourceTypeNotificationRule(resourceTypes: string[]): AutomationRule;
|
|
142
|
+
/**
|
|
143
|
+
* Create automation rule for compliance failures
|
|
144
|
+
*/
|
|
145
|
+
createComplianceFailureRule(): AutomationRule;
|
|
146
|
+
/**
|
|
147
|
+
* Create automation rule for false positives
|
|
148
|
+
*/
|
|
149
|
+
createFalsePositiveSuppressionRule(productName: string, titlePatterns: string[]): AutomationRule;
|
|
150
|
+
/**
|
|
151
|
+
* Get Security Hub
|
|
152
|
+
*/
|
|
153
|
+
getHub(id: string): SecurityHubConfig | undefined;
|
|
154
|
+
/**
|
|
155
|
+
* List Security Hubs
|
|
156
|
+
*/
|
|
157
|
+
listHubs(): SecurityHubConfig[];
|
|
158
|
+
/**
|
|
159
|
+
* Generate CloudFormation for Security Hub
|
|
160
|
+
*/
|
|
161
|
+
generateHubCF(hub: SecurityHubConfig): any;
|
|
162
|
+
/**
|
|
163
|
+
* Generate CloudFormation for security standard subscription
|
|
164
|
+
*/
|
|
165
|
+
generateStandardCF(standard: SecurityStandard): any;
|
|
166
|
+
/**
|
|
167
|
+
* Generate CloudFormation for automation rule
|
|
168
|
+
*/
|
|
169
|
+
generateAutomationRuleCF(rule: AutomationRule): any;
|
|
170
|
+
/**
|
|
171
|
+
* Clear all data
|
|
172
|
+
*/
|
|
173
|
+
clear(): void;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Global Security Hub manager instance
|
|
177
|
+
*/
|
|
178
|
+
export declare const securityHubManager: SecurityHubManager;
|