New-SIAPolicy

New-SIAPolicy

SYNOPSIS

Create a new SIA policy

SYNTAX

New-SIAPolicy [-policyName] <String> [[-status] <String>] [[-description] <String>]
 [[-providersData] <PSObject>] [[-startDate] <DateTime>] [[-endDate] <DateTime>]
 [[-userAccessRules] <PSObject[]>] [-WhatIf] [-Confirm]
 [<CommonParameters>]

DESCRIPTION

Creates new SIA policy using the details specified for any parameters

EXAMPLES

Example 1

New-SIAPolicy -policyName Some-Policy-Name

Creates a draft policy with no settings

Example 2

New-SIAPolicy -policyName Some-Policy-Name -status Enabled -description "Policy Description" `
-providersData $providersData -startDate (Get-Date) -endDate (Get-Date).AddDays(7) `
-userAccessRules $userAccessRules

Creates an enabled policy, valid for 7 days with settings according to the parameter values.

`$providersData` object is created using the `New-SIAPolicyProviderDefinition` command

`$userAccessRules` object is created using the `New-SIAPolicyUserAccessRuleDefinition` command

Example 3

New-SIAPolicy -policyName Some-Policy-Name -status Enabled -description "Policy Description" `
-providersData $providersData  -userAccessRules $userAccessRules

Creates an enabled policy with settings according to the parameter values.

`$providersData` object is created using the `New-SIAPolicyProviderDefinition` command

`$userAccessRules` object is created using the `New-SIAPolicyUserAccessRuleDefinition` command

Example 4

New-SIAPolicy -policyName Some-Policy-Name -status Draft -providersData $providersData

Creates a draft policy with settings according to the parameter values.

`$providersData` object is created using the `New-SIAPolicyProviderDefinition` command

Example 5

New-SIAPolicy -policyName Some-Policy-Name -status Draft -userAccessRules $userAccessRules

Creates a draft policy with settings according to the parameter values.

`$userAccessRules` object is created using the `New-SIAPolicyUserAccessRuleDefinition` command

Example 6

$ConnectAs = New-SIAPolicyConnectAsDefinition -OnPrem -assignGroups Administrators
$ConnectAs = New-SIAPolicyConnectAsDefinition -AWS -ssh "ec2-user" -assignGroups Administrators, "Remote Desktop Users" -connectAsDefinition $ConnectAs
$ConnectAs = New-SIAPolicyConnectAsDefinition -Azure -ssh "azureuser" -connectAsDefinition $ConnectAs
$ConnectAs = New-SIAPolicyConnectAsDefinition -GCP -ssh "root" -connectAsDefinition $ConnectAs

$UserData = New-SIAPolicyUserDataDefinition -Role -name "DEV_TEAM_ROLE"
$UserData = New-SIAPolicyUserDataDefinition -Role -name "SOME_TEAM_ROLE" -UserDataDefinition $UserData
$UserData = New-SIAPolicyUserDataDefinition -Group -name "DEV_TEAM_GROUP" -UserDataDefinition $UserData
$UserData = New-SIAPolicyUserDataDefinition -Group -name "SOME_TEAM_GROUP" -UserDataDefinition $UserData
$UserData = New-SIAPolicyUserDataDefinition -User -name SomeUser -UserDataDefinition $UserData
$UserData = New-SIAPolicyUserDataDefinition -User -name SomeOtherUser -UserDataDefinition $UserData

$AccessRules = @()
$AccessRules += New-SIAPolicyUserAccessRuleDefinition -ruleName SomeAccessRule -userData $UserData1 -connectAs $ConnectAs1 -timeZone Europe/London
$AccessRules += New-SIAPolicyUserAccessRuleDefinition -ruleName AnotherAccessRule -userData $UserData2 -connectAs $ConnectAs2 -timeZone America/Costa_Rica

$FQDNrules = @()
$FQDNrules += New-SIAPolicyFQDNRuleDefinition -operator EXACTLY -computernamePattern SomeHost -domain SomeDomain.com
$FQDNrules += New-SIAPolicyFQDNRuleDefinition -operator WILDCARD -computernamePattern *-DEV-* -domain SomeDomain.com
$FQDNrules += New-SIAPolicyFQDNRuleDefinition -operator SUFFIX -computernamePattern '-Prod' -domain SomeDomain.com
$FQDNrules += New-SIAPolicyFQDNRuleDefinition -operator CONTAINS -computernamePattern SQL -domain SomeDomain.com
$FQDNrules += New-SIAPolicyFQDNRuleDefinition -operator PREFIX -computernamePattern DC1 -domain SomeDomain.com

$Providers = New-SIAPolicyProviderDefinition -OnPrem -fqdnRulesConjunction OR -fqdnRules $FQDNrules
$Providers = New-SIAPolicyProviderDefinition -AWS -regions "us-east-1","us-east-2" -tags @{"Key"="env";"Value"=@("prod")} -ProviderDefinition $Providers
$Providers = New-SIAPolicyProviderDefinition -Azure -regions "eastus2","eastus" -tags @{"Key"="env";"Value"=@("prod")} -ProviderDefinition $Providers
$Providers = New-SIAPolicyProviderDefinition -GCP -regions "asia-east1","us-east1" -labels @{"Key"="env";"Value"=@("prod")} -ProviderDefinition $Providers

New-SIAPolicy -policyName SomePolicy -status Enabled -description "Some Description" -providersData $Providers -userAccessRules $AccessRules

Creates a complete policy with settings according to the parameter values.

PARAMETERS

-description

A description for the policy

Type: String
Parameter Sets: (All)
Aliases:

Required: False
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-endDate

The end date for the policy

Type: DateTime
Parameter Sets: (All)
Aliases:

Required: False
Position: 5
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-policyName

A name for the policy

Type: String
Parameter Sets: (All)
Aliases:

Required: True
Position: 0
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-providersData

Accepts object output from New-SIAPolicyProviderDefinition.

Describes the configuration relating to the providers for the policy

Type: PSObject
Parameter Sets: (All)
Aliases:

Required: False
Position: 3
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-startDate

The date the policy is valid from

Type: DateTime
Parameter Sets: (All)
Aliases:

Required: False
Position: 4
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-status

The status of the policy

Type: String
Parameter Sets: (All)
Aliases:
Accepted values: Enabled, Disabled, Draft, Expired

Required: False
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-userAccessRules

Accepts object output from New-SIAPolicyUserAccessRuleDefinition.

Describes the user access rules configured on the policy

Type: PSObject[]
Parameter Sets: (All)
Aliases:

Required: False
Position: 6
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Confirm

Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Parameter Sets: (All)
Aliases: cf

Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Parameter Sets: (All)
Aliases: wi

Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False

CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.

INPUTS

System.String

System.Management.Automation.PSObject

System.DateTime

System.Management.Automation.PSObject[]

OUTPUTS

System.Object

NOTES

Requires the DpaAdmin role.