-
Notifications
You must be signed in to change notification settings - Fork 7
/
SetupGraphToPolicy.sh
50 lines (43 loc) · 1.3 KB
/
SetupGraphToPolicy.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/bin/bash
curl -sL https://github.com/yangl900/armclient-go/releases/download/v0.2.3/armclient-go_linux_64-bit.tar.gz | tar -xz
echo '#!/bin/bash
POLICY=""
EFFECT=""
QUERY=""
POSITIONAL=()
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
-q|--q|--query)
QUERY="$2"
shift # past argument
shift # past value
;;
-e|--e|--effect)
EFFECT="$2"
shift # past argument
shift # past value
;;
-c|--c|--create)
POLICY="$2"
shift # past argument
shift # past value
;;
*) # unknown option
POSITIONAL+=("$1") # save it in an array for later
shift # past argument
;;
esac
done
set -- "${POSITIONAL[@]}" # restore positional parameters
if [ -z "$POLICY" ]
then
eval ./armclient post '"'"'"/providers/Microsoft.ResourceGraph/resources/policy?api-version=2018-09-01-preview&effect='"'\${EFFECT:-audit}'"'"'"'" "'"'"'"'\${QUERY}'"'"'"'| sed '1 d'"'
else
p=$(eval ./armclient post '"'"'"/providers/Microsoft.ResourceGraph/resources/policy?api-version=2018-09-01-preview&effect='"'\${EFFECT:-audit}'"'"'"'" "'"'"'"'\${QUERY}'"'"'"'| sed '1 d'"')
az policy definition create --rules "${p: 18:-1}" -n "$POLICY" --display-name "$POLICY"
fi
' > GraphToPolicy
sed -ie "/^# some more/a alias graph2policy='. ./GraphToPolicy' " .bashrc
alias graph2policy='. ./GraphToPolicy'