File tree Expand file tree Collapse file tree 5 files changed +94
-8
lines changed
lib/codeql/bicep/frameworks/Microsoft
test/library-tests/frameworks/vaults Expand file tree Collapse file tree 5 files changed +94
-8
lines changed Original file line number Diff line number Diff line change 1
1
private import bicep
2
2
private import codeql.bicep.Concepts
3
+ private import Network
3
4
4
5
module KeyVault {
5
6
class VaultResource extends Resource {
@@ -16,6 +17,10 @@ module KeyVault {
16
17
result = this .getProperties ( ) .getAccessPolicies ( )
17
18
}
18
19
20
+ Network:: NetworkAcl getNetworkAcls ( ) {
21
+ result = this .getProperties ( ) .getNetworkAcls ( )
22
+ }
23
+
19
24
override string toString ( ) { result = "Key Vault Resource" }
20
25
}
21
26
@@ -93,6 +98,10 @@ module KeyVault {
93
98
94
99
string publicNetworkAccess ( ) { result = this .getPublicNetworkAccess ( ) .getValue ( ) }
95
100
101
+ Network:: NetworkAcl getNetworkAcls ( ) {
102
+ result = this .getProperty ( "networkAcls" )
103
+ }
104
+
96
105
AccessPolicy getAccessPolicies ( ) {
97
106
result = this .getProperty ( "accessPolicies" ) .( Array ) .getElements ( )
98
107
}
Original file line number Diff line number Diff line change @@ -112,6 +112,62 @@ module Network {
112
112
}
113
113
}
114
114
115
+
116
+ class NetworkAcl extends Object {
117
+ private Resource resource ;
118
+
119
+ NetworkAcl ( ) {
120
+ exists ( Object props |
121
+ props = resource .getProperty ( "properties" ) and
122
+ this = props .getProperty ( [ "networkAcl" , "networkAcls" ] )
123
+ )
124
+ }
125
+
126
+ Resource getResource ( ) { result = resource }
127
+
128
+ StringLiteral getBypass ( ) {
129
+ result = this .getProperty ( "bypass" )
130
+ }
131
+
132
+ string bypass ( ) {
133
+ result = this .getBypass ( ) .getValue ( )
134
+ }
135
+
136
+ StringLiteral getDefaultAction ( ) {
137
+ result = this .getProperty ( "defaultAction" )
138
+ }
139
+
140
+ string defaultAction ( ) {
141
+ result = this .getDefaultAction ( ) .getValue ( )
142
+ }
143
+
144
+ IpRule getIpRules ( ) {
145
+ result = this .getProperty ( "ipRules" ) .( Array ) .getElements ( )
146
+ }
147
+
148
+ string toString ( ) {
149
+ result = "Network ACL"
150
+ }
151
+ }
152
+
153
+ class IpRule extends Object {
154
+ private NetworkAcl acl ;
155
+
156
+ IpRule ( ) {
157
+ this = acl .getProperty ( "ipRules" ) .( Array ) .getElements ( )
158
+ }
159
+
160
+ NetworkAcl getNetworkAcl ( ) { result = acl }
161
+
162
+ StringLiteral getValue ( ) {
163
+ result = this .getProperty ( "value" )
164
+ }
165
+
166
+ string toString ( ) {
167
+ result = "IP Rule"
168
+ }
169
+ }
170
+
115
171
module VirtualNetworkProperties {
116
172
/**
117
173
* The properties object for the Microsoft.Network/virtualNetworks/subnets type.
Original file line number Diff line number Diff line change 1
1
keyvault
2
- | app.bicep:1:1:37 :1 | Key Vault Resource |
2
+ | app.bicep:1:1:51 :1 | Key Vault Resource |
3
3
keyvaultPolicies
4
- | app.bicep:1:1:37:1 | Key Vault Resource | app.bicep:11:7:19:7 | AccessPolicy |
5
- | app.bicep:1:1:37:1 | Key Vault Resource | app.bicep:20:7:28:7 | AccessPolicy |
4
+ | app.bicep:1:1:51:1 | Key Vault Resource | app.bicep:11:7:19:7 | AccessPolicy |
5
+ | app.bicep:1:1:51:1 | Key Vault Resource | app.bicep:20:7:28:7 | AccessPolicy |
6
+ keyvaultNetworkAcls
7
+ | app.bicep:1:1:51:1 | Key Vault Resource | app.bicep:36:18:49:5 | Network ACL |
Original file line number Diff line number Diff line change 1
1
import bicep
2
2
3
- query predicate keyvault ( KeyVault:: VaultResource vault ) {
4
- any ( )
5
- }
3
+ query predicate keyvault ( KeyVault:: VaultResource vault ) { any ( ) }
6
4
7
- query predicate keyvaultPolicies ( KeyVault:: VaultResource vault , KeyVault:: KeyVaultProperties:: AccessPolicy policy ) {
5
+ query predicate keyvaultPolicies (
6
+ KeyVault:: VaultResource vault , KeyVault:: KeyVaultProperties:: AccessPolicy policy
7
+ ) {
8
8
policy = vault .getAccessPolicies ( )
9
-
9
+ }
10
+
11
+ query predicate keyvaultNetworkAcls (
12
+ KeyVault:: VaultResource vault , Network:: NetworkAcl networkAcl
13
+ ) {
14
+ networkAcl = vault .getNetworkAcls ( )
10
15
}
Original file line number Diff line number Diff line change @@ -33,5 +33,19 @@ resource keyVault 'Microsoft.KeyVault/vaults@2021-06-01-preview' = {
33
33
enableSoftDelete : true
34
34
enablePurgeProtection : true
35
35
publicNetworkAccess : 'Disabled' // Recommended: restrict public access
36
+ networkAcls : {
37
+ bypass : 'AzureServices'
38
+ defaultAction : 'Deny'
39
+ ipRules : [
40
+ {
41
+ value : '203.0.113.0/24'
42
+ }
43
+ ]
44
+ virtualNetworkRules : [
45
+ {
46
+ id : '/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myrg/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/mysubnet'
47
+ }
48
+ ]
49
+ }
36
50
}
37
51
}
You can’t perform that action at this time.
0 commit comments