github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/securityhub/configurationPolicy.go (about) 1 // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. 2 // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** 3 4 package securityhub 5 6 import ( 7 "context" 8 "reflect" 9 10 "errors" 11 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 12 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 13 ) 14 15 // Manages Security Hub configuration policy 16 // 17 // > **NOTE:** This resource requires `securityhub.OrganizationConfiguration` to be configured of type `CENTRAL`. More information about Security Hub central configuration and configuration policies can be found in the [How Security Hub configuration policies work](https://docs.aws.amazon.com/securityhub/latest/userguide/configuration-policies-overview.html) documentation. 18 // 19 // ## Example Usage 20 // 21 // ### Default standards enabled 22 // 23 // <!--Start PulumiCodeChooser --> 24 // ```go 25 // package main 26 // 27 // import ( 28 // 29 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/securityhub" 30 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 31 // 32 // ) 33 // 34 // func main() { 35 // pulumi.Run(func(ctx *pulumi.Context) error { 36 // example, err := securityhub.NewFindingAggregator(ctx, "example", &securityhub.FindingAggregatorArgs{ 37 // LinkingMode: pulumi.String("ALL_REGIONS"), 38 // }) 39 // if err != nil { 40 // return err 41 // } 42 // exampleOrganizationConfiguration, err := securityhub.NewOrganizationConfiguration(ctx, "example", &securityhub.OrganizationConfigurationArgs{ 43 // AutoEnable: pulumi.Bool(false), 44 // AutoEnableStandards: pulumi.String("NONE"), 45 // OrganizationConfiguration: &securityhub.OrganizationConfigurationOrganizationConfigurationArgs{ 46 // ConfigurationType: pulumi.String("CENTRAL"), 47 // }, 48 // }, pulumi.DependsOn([]pulumi.Resource{ 49 // example, 50 // })) 51 // if err != nil { 52 // return err 53 // } 54 // _, err = securityhub.NewConfigurationPolicy(ctx, "example", &securityhub.ConfigurationPolicyArgs{ 55 // Name: pulumi.String("Example"), 56 // Description: pulumi.String("This is an example configuration policy"), 57 // ConfigurationPolicy: &securityhub.ConfigurationPolicyConfigurationPolicyArgs{ 58 // ServiceEnabled: pulumi.Bool(true), 59 // EnabledStandardArns: pulumi.StringArray{ 60 // pulumi.String("arn:aws:securityhub:us-east-1::standards/aws-foundational-security-best-practices/v/1.0.0"), 61 // pulumi.String("arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0"), 62 // }, 63 // SecurityControlsConfiguration: &securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationArgs{ 64 // DisabledControlIdentifiers: pulumi.StringArray{}, 65 // }, 66 // }, 67 // }, pulumi.DependsOn([]pulumi.Resource{ 68 // exampleOrganizationConfiguration, 69 // })) 70 // if err != nil { 71 // return err 72 // } 73 // return nil 74 // }) 75 // } 76 // 77 // ``` 78 // <!--End PulumiCodeChooser --> 79 // 80 // ### Disabled Policy 81 // 82 // <!--Start PulumiCodeChooser --> 83 // ```go 84 // package main 85 // 86 // import ( 87 // 88 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/securityhub" 89 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 90 // 91 // ) 92 // 93 // func main() { 94 // pulumi.Run(func(ctx *pulumi.Context) error { 95 // _, err := securityhub.NewConfigurationPolicy(ctx, "disabled", &securityhub.ConfigurationPolicyArgs{ 96 // Name: pulumi.String("Disabled"), 97 // Description: pulumi.String("This is an example of disabled configuration policy"), 98 // ConfigurationPolicy: &securityhub.ConfigurationPolicyConfigurationPolicyArgs{ 99 // ServiceEnabled: pulumi.Bool(false), 100 // }, 101 // }, pulumi.DependsOn([]pulumi.Resource{ 102 // example, 103 // })) 104 // if err != nil { 105 // return err 106 // } 107 // return nil 108 // }) 109 // } 110 // 111 // ``` 112 // <!--End PulumiCodeChooser --> 113 // 114 // ### Custom Control Configuration 115 // 116 // <!--Start PulumiCodeChooser --> 117 // ```go 118 // package main 119 // 120 // import ( 121 // 122 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/securityhub" 123 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 124 // 125 // ) 126 // 127 // func main() { 128 // pulumi.Run(func(ctx *pulumi.Context) error { 129 // _, err := securityhub.NewConfigurationPolicy(ctx, "disabled", &securityhub.ConfigurationPolicyArgs{ 130 // Name: pulumi.String("Custom Controls"), 131 // Description: pulumi.String("This is an example of configuration policy with custom control settings"), 132 // ConfigurationPolicy: &securityhub.ConfigurationPolicyConfigurationPolicyArgs{ 133 // ServiceEnabled: pulumi.Bool(true), 134 // EnabledStandardArns: pulumi.StringArray{ 135 // pulumi.String("arn:aws:securityhub:us-east-1::standards/aws-foundational-security-best-practices/v/1.0.0"), 136 // pulumi.String("arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0"), 137 // }, 138 // SecurityControlsConfiguration: &securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationArgs{ 139 // EnabledControlIdentifiers: pulumi.StringArray{ 140 // pulumi.String("APIGateway.1"), 141 // pulumi.String("IAM.7"), 142 // }, 143 // SecurityControlCustomParameters: securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterArray{ 144 // &securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterArgs{ 145 // SecurityControlId: pulumi.String("APIGateway.1"), 146 // Parameters: securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterArray{ 147 // &securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterArgs{ 148 // Name: pulumi.String("loggingLevel"), 149 // ValueType: pulumi.String("CUSTOM"), 150 // Enum: &securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterEnumArgs{ 151 // Value: pulumi.String("INFO"), 152 // }, 153 // }, 154 // }, 155 // }, 156 // &securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterArgs{ 157 // SecurityControlId: pulumi.String("IAM.7"), 158 // Parameters: securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterArray{ 159 // &securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterArgs{ 160 // Name: pulumi.String("RequireLowercaseCharacters"), 161 // ValueType: pulumi.String("CUSTOM"), 162 // Bool: &securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterBoolArgs{ 163 // Value: pulumi.Bool(false), 164 // }, 165 // }, 166 // &securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterArgs{ 167 // Name: pulumi.String("MaxPasswordAge"), 168 // ValueType: pulumi.String("CUSTOM"), 169 // Int: &securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterIntArgs{ 170 // Value: pulumi.Int(60), 171 // }, 172 // }, 173 // }, 174 // }, 175 // }, 176 // }, 177 // }, 178 // }, pulumi.DependsOn([]pulumi.Resource{ 179 // example, 180 // })) 181 // if err != nil { 182 // return err 183 // } 184 // return nil 185 // }) 186 // } 187 // 188 // ``` 189 // <!--End PulumiCodeChooser --> 190 // 191 // ## Import 192 // 193 // Using `pulumi import`, import an existing Security Hub enabled account using the universally unique identifier (UUID) of the policy. For example: 194 // 195 // ```sh 196 // $ pulumi import aws:securityhub/configurationPolicy:ConfigurationPolicy example "00000000-1111-2222-3333-444444444444" 197 // ``` 198 type ConfigurationPolicy struct { 199 pulumi.CustomResourceState 200 201 Arn pulumi.StringOutput `pulumi:"arn"` 202 // Defines how Security Hub is configured. See below. 203 ConfigurationPolicy ConfigurationPolicyConfigurationPolicyOutput `pulumi:"configurationPolicy"` 204 // The description of the configuration policy. 205 Description pulumi.StringPtrOutput `pulumi:"description"` 206 // The name of the configuration policy. 207 Name pulumi.StringOutput `pulumi:"name"` 208 } 209 210 // NewConfigurationPolicy registers a new resource with the given unique name, arguments, and options. 211 func NewConfigurationPolicy(ctx *pulumi.Context, 212 name string, args *ConfigurationPolicyArgs, opts ...pulumi.ResourceOption) (*ConfigurationPolicy, error) { 213 if args == nil { 214 return nil, errors.New("missing one or more required arguments") 215 } 216 217 if args.ConfigurationPolicy == nil { 218 return nil, errors.New("invalid value for required argument 'ConfigurationPolicy'") 219 } 220 opts = internal.PkgResourceDefaultOpts(opts) 221 var resource ConfigurationPolicy 222 err := ctx.RegisterResource("aws:securityhub/configurationPolicy:ConfigurationPolicy", name, args, &resource, opts...) 223 if err != nil { 224 return nil, err 225 } 226 return &resource, nil 227 } 228 229 // GetConfigurationPolicy gets an existing ConfigurationPolicy resource's state with the given name, ID, and optional 230 // state properties that are used to uniquely qualify the lookup (nil if not required). 231 func GetConfigurationPolicy(ctx *pulumi.Context, 232 name string, id pulumi.IDInput, state *ConfigurationPolicyState, opts ...pulumi.ResourceOption) (*ConfigurationPolicy, error) { 233 var resource ConfigurationPolicy 234 err := ctx.ReadResource("aws:securityhub/configurationPolicy:ConfigurationPolicy", name, id, state, &resource, opts...) 235 if err != nil { 236 return nil, err 237 } 238 return &resource, nil 239 } 240 241 // Input properties used for looking up and filtering ConfigurationPolicy resources. 242 type configurationPolicyState struct { 243 Arn *string `pulumi:"arn"` 244 // Defines how Security Hub is configured. See below. 245 ConfigurationPolicy *ConfigurationPolicyConfigurationPolicy `pulumi:"configurationPolicy"` 246 // The description of the configuration policy. 247 Description *string `pulumi:"description"` 248 // The name of the configuration policy. 249 Name *string `pulumi:"name"` 250 } 251 252 type ConfigurationPolicyState struct { 253 Arn pulumi.StringPtrInput 254 // Defines how Security Hub is configured. See below. 255 ConfigurationPolicy ConfigurationPolicyConfigurationPolicyPtrInput 256 // The description of the configuration policy. 257 Description pulumi.StringPtrInput 258 // The name of the configuration policy. 259 Name pulumi.StringPtrInput 260 } 261 262 func (ConfigurationPolicyState) ElementType() reflect.Type { 263 return reflect.TypeOf((*configurationPolicyState)(nil)).Elem() 264 } 265 266 type configurationPolicyArgs struct { 267 // Defines how Security Hub is configured. See below. 268 ConfigurationPolicy ConfigurationPolicyConfigurationPolicy `pulumi:"configurationPolicy"` 269 // The description of the configuration policy. 270 Description *string `pulumi:"description"` 271 // The name of the configuration policy. 272 Name *string `pulumi:"name"` 273 } 274 275 // The set of arguments for constructing a ConfigurationPolicy resource. 276 type ConfigurationPolicyArgs struct { 277 // Defines how Security Hub is configured. See below. 278 ConfigurationPolicy ConfigurationPolicyConfigurationPolicyInput 279 // The description of the configuration policy. 280 Description pulumi.StringPtrInput 281 // The name of the configuration policy. 282 Name pulumi.StringPtrInput 283 } 284 285 func (ConfigurationPolicyArgs) ElementType() reflect.Type { 286 return reflect.TypeOf((*configurationPolicyArgs)(nil)).Elem() 287 } 288 289 type ConfigurationPolicyInput interface { 290 pulumi.Input 291 292 ToConfigurationPolicyOutput() ConfigurationPolicyOutput 293 ToConfigurationPolicyOutputWithContext(ctx context.Context) ConfigurationPolicyOutput 294 } 295 296 func (*ConfigurationPolicy) ElementType() reflect.Type { 297 return reflect.TypeOf((**ConfigurationPolicy)(nil)).Elem() 298 } 299 300 func (i *ConfigurationPolicy) ToConfigurationPolicyOutput() ConfigurationPolicyOutput { 301 return i.ToConfigurationPolicyOutputWithContext(context.Background()) 302 } 303 304 func (i *ConfigurationPolicy) ToConfigurationPolicyOutputWithContext(ctx context.Context) ConfigurationPolicyOutput { 305 return pulumi.ToOutputWithContext(ctx, i).(ConfigurationPolicyOutput) 306 } 307 308 // ConfigurationPolicyArrayInput is an input type that accepts ConfigurationPolicyArray and ConfigurationPolicyArrayOutput values. 309 // You can construct a concrete instance of `ConfigurationPolicyArrayInput` via: 310 // 311 // ConfigurationPolicyArray{ ConfigurationPolicyArgs{...} } 312 type ConfigurationPolicyArrayInput interface { 313 pulumi.Input 314 315 ToConfigurationPolicyArrayOutput() ConfigurationPolicyArrayOutput 316 ToConfigurationPolicyArrayOutputWithContext(context.Context) ConfigurationPolicyArrayOutput 317 } 318 319 type ConfigurationPolicyArray []ConfigurationPolicyInput 320 321 func (ConfigurationPolicyArray) ElementType() reflect.Type { 322 return reflect.TypeOf((*[]*ConfigurationPolicy)(nil)).Elem() 323 } 324 325 func (i ConfigurationPolicyArray) ToConfigurationPolicyArrayOutput() ConfigurationPolicyArrayOutput { 326 return i.ToConfigurationPolicyArrayOutputWithContext(context.Background()) 327 } 328 329 func (i ConfigurationPolicyArray) ToConfigurationPolicyArrayOutputWithContext(ctx context.Context) ConfigurationPolicyArrayOutput { 330 return pulumi.ToOutputWithContext(ctx, i).(ConfigurationPolicyArrayOutput) 331 } 332 333 // ConfigurationPolicyMapInput is an input type that accepts ConfigurationPolicyMap and ConfigurationPolicyMapOutput values. 334 // You can construct a concrete instance of `ConfigurationPolicyMapInput` via: 335 // 336 // ConfigurationPolicyMap{ "key": ConfigurationPolicyArgs{...} } 337 type ConfigurationPolicyMapInput interface { 338 pulumi.Input 339 340 ToConfigurationPolicyMapOutput() ConfigurationPolicyMapOutput 341 ToConfigurationPolicyMapOutputWithContext(context.Context) ConfigurationPolicyMapOutput 342 } 343 344 type ConfigurationPolicyMap map[string]ConfigurationPolicyInput 345 346 func (ConfigurationPolicyMap) ElementType() reflect.Type { 347 return reflect.TypeOf((*map[string]*ConfigurationPolicy)(nil)).Elem() 348 } 349 350 func (i ConfigurationPolicyMap) ToConfigurationPolicyMapOutput() ConfigurationPolicyMapOutput { 351 return i.ToConfigurationPolicyMapOutputWithContext(context.Background()) 352 } 353 354 func (i ConfigurationPolicyMap) ToConfigurationPolicyMapOutputWithContext(ctx context.Context) ConfigurationPolicyMapOutput { 355 return pulumi.ToOutputWithContext(ctx, i).(ConfigurationPolicyMapOutput) 356 } 357 358 type ConfigurationPolicyOutput struct{ *pulumi.OutputState } 359 360 func (ConfigurationPolicyOutput) ElementType() reflect.Type { 361 return reflect.TypeOf((**ConfigurationPolicy)(nil)).Elem() 362 } 363 364 func (o ConfigurationPolicyOutput) ToConfigurationPolicyOutput() ConfigurationPolicyOutput { 365 return o 366 } 367 368 func (o ConfigurationPolicyOutput) ToConfigurationPolicyOutputWithContext(ctx context.Context) ConfigurationPolicyOutput { 369 return o 370 } 371 372 func (o ConfigurationPolicyOutput) Arn() pulumi.StringOutput { 373 return o.ApplyT(func(v *ConfigurationPolicy) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 374 } 375 376 // Defines how Security Hub is configured. See below. 377 func (o ConfigurationPolicyOutput) ConfigurationPolicy() ConfigurationPolicyConfigurationPolicyOutput { 378 return o.ApplyT(func(v *ConfigurationPolicy) ConfigurationPolicyConfigurationPolicyOutput { 379 return v.ConfigurationPolicy 380 }).(ConfigurationPolicyConfigurationPolicyOutput) 381 } 382 383 // The description of the configuration policy. 384 func (o ConfigurationPolicyOutput) Description() pulumi.StringPtrOutput { 385 return o.ApplyT(func(v *ConfigurationPolicy) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) 386 } 387 388 // The name of the configuration policy. 389 func (o ConfigurationPolicyOutput) Name() pulumi.StringOutput { 390 return o.ApplyT(func(v *ConfigurationPolicy) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 391 } 392 393 type ConfigurationPolicyArrayOutput struct{ *pulumi.OutputState } 394 395 func (ConfigurationPolicyArrayOutput) ElementType() reflect.Type { 396 return reflect.TypeOf((*[]*ConfigurationPolicy)(nil)).Elem() 397 } 398 399 func (o ConfigurationPolicyArrayOutput) ToConfigurationPolicyArrayOutput() ConfigurationPolicyArrayOutput { 400 return o 401 } 402 403 func (o ConfigurationPolicyArrayOutput) ToConfigurationPolicyArrayOutputWithContext(ctx context.Context) ConfigurationPolicyArrayOutput { 404 return o 405 } 406 407 func (o ConfigurationPolicyArrayOutput) Index(i pulumi.IntInput) ConfigurationPolicyOutput { 408 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ConfigurationPolicy { 409 return vs[0].([]*ConfigurationPolicy)[vs[1].(int)] 410 }).(ConfigurationPolicyOutput) 411 } 412 413 type ConfigurationPolicyMapOutput struct{ *pulumi.OutputState } 414 415 func (ConfigurationPolicyMapOutput) ElementType() reflect.Type { 416 return reflect.TypeOf((*map[string]*ConfigurationPolicy)(nil)).Elem() 417 } 418 419 func (o ConfigurationPolicyMapOutput) ToConfigurationPolicyMapOutput() ConfigurationPolicyMapOutput { 420 return o 421 } 422 423 func (o ConfigurationPolicyMapOutput) ToConfigurationPolicyMapOutputWithContext(ctx context.Context) ConfigurationPolicyMapOutput { 424 return o 425 } 426 427 func (o ConfigurationPolicyMapOutput) MapIndex(k pulumi.StringInput) ConfigurationPolicyOutput { 428 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ConfigurationPolicy { 429 return vs[0].(map[string]*ConfigurationPolicy)[vs[1].(string)] 430 }).(ConfigurationPolicyOutput) 431 } 432 433 func init() { 434 pulumi.RegisterInputType(reflect.TypeOf((*ConfigurationPolicyInput)(nil)).Elem(), &ConfigurationPolicy{}) 435 pulumi.RegisterInputType(reflect.TypeOf((*ConfigurationPolicyArrayInput)(nil)).Elem(), ConfigurationPolicyArray{}) 436 pulumi.RegisterInputType(reflect.TypeOf((*ConfigurationPolicyMapInput)(nil)).Elem(), ConfigurationPolicyMap{}) 437 pulumi.RegisterOutputType(ConfigurationPolicyOutput{}) 438 pulumi.RegisterOutputType(ConfigurationPolicyArrayOutput{}) 439 pulumi.RegisterOutputType(ConfigurationPolicyMapOutput{}) 440 }