1
- import * as cdk from ' aws-cdk-lib' ;
2
- import { Construct } from ' constructs' ;
3
- import * as sso from ' aws-cdk-lib/aws-sso' ;
1
+ import * as cdk from " aws-cdk-lib" ;
2
+ import { Construct } from " constructs" ;
3
+ import * as sso from " aws-cdk-lib/aws-sso" ;
4
4
5
5
export class Sso extends cdk . Stack {
6
6
constructor ( scope : Construct , id : string , props ?: cdk . StackProps ) {
7
7
super ( scope , id , props ) ;
8
8
9
- const instanceArnParam = new cdk . CfnParameter ( this , ' instanceArnParam' , {
10
- type : ' String' ,
11
- description : ' The ARN of the SSO instance' ,
9
+ const instanceArnParam = new cdk . CfnParameter ( this , " instanceArnParam" , {
10
+ type : " String" ,
11
+ description : " The ARN of the SSO instance" ,
12
12
} ) ;
13
13
14
14
// start account number parameters
15
- const wmaugManagementAccountNumberParam = new cdk . CfnParameter ( this , 'wmaugManagementAccountNumberParam' , {
16
- type : 'String' ,
17
- description : 'The account number of the WMAUG management account' ,
18
- } ) ;
15
+ const wmaugManagementAccountNumberParam = new cdk . CfnParameter (
16
+ this ,
17
+ "wmaugManagementAccountNumberParam" ,
18
+ {
19
+ type : "String" ,
20
+ description : "The account number of the WMAUG management account" ,
21
+ } ,
22
+ ) ;
19
23
20
- const wmaugModeratorAccountNumberParam = new cdk . CfnParameter ( this , 'wmaugModeratorAccountNumberParam' , {
21
- type : 'String' ,
22
- description : 'The account number of the WMAUG moderator account' ,
23
- } ) ;
24
+ const wmaugModeratorAccountNumberParam = new cdk . CfnParameter (
25
+ this ,
26
+ "wmaugModeratorAccountNumberParam" ,
27
+ {
28
+ type : "String" ,
29
+ description : "The account number of the WMAUG moderator account" ,
30
+ } ,
31
+ ) ;
24
32
25
33
// start group GUID parameters
26
34
27
- const wmaugModeratorAdminGroupId = new cdk . CfnParameter ( this , 'wmaugModeratorAdminGroupId' , {
28
- type : 'String' ,
29
- description : 'The GUID of the wmaugModeratorAdmin SSO group' ,
30
- } ) ;
35
+ const wmaugModeratorAdminGroupId = new cdk . CfnParameter (
36
+ this ,
37
+ "wmaugModeratorAdminGroupId" ,
38
+ {
39
+ type : "String" ,
40
+ description : "The GUID of the wmaugModeratorAdmin SSO group" ,
41
+ } ,
42
+ ) ;
31
43
32
- const wmaugFullAdminGroupId = new cdk . CfnParameter ( this , 'wmaugFullAdminGroupId' , {
33
- type : 'String' ,
34
- description : 'The GUID of the wmaugFullAdmin SSO group' ,
35
- } ) ;
44
+ const wmaugFullAdminGroupId = new cdk . CfnParameter (
45
+ this ,
46
+ "wmaugFullAdminGroupId" ,
47
+ {
48
+ type : "String" ,
49
+ description : "The GUID of the wmaugFullAdmin SSO group" ,
50
+ } ,
51
+ ) ;
36
52
37
53
// Start permission set policy creation
38
- const wmaugModeratorAdminPermissionSet = new sso . CfnPermissionSet ( this , 'wmaugModeratorAdminPermissionSet' , {
39
- // Use the value of the CFN parameter
40
- instanceArn : instanceArnParam . valueAsString ,
41
- name : 'wmaugModeratorAdminPermissionSet' ,
42
- description : 'Permission set WMAUG moderators and administrators will use' ,
43
- managedPolicies : [ 'arn:aws:iam::aws:policy/AdministratorAccess' ] ,
44
- } ) ;
54
+ const wmaugModeratorAdminPermissionSet = new sso . CfnPermissionSet (
55
+ this ,
56
+ "wmaugModeratorAdminPermissionSet" ,
57
+ {
58
+ // Use the value of the CFN parameter
59
+ instanceArn : instanceArnParam . valueAsString ,
60
+ name : "wmaugModeratorAdminPermissionSet" ,
61
+ description :
62
+ "Permission set WMAUG moderators and administrators will use" ,
63
+ managedPolicies : [ "arn:aws:iam::aws:policy/AdministratorAccess" ] ,
64
+ } ,
65
+ ) ;
45
66
46
- const wmaugFullAdminPermissionSet = new sso . CfnPermissionSet ( this , 'wmaugFullAdminPermissionSet' , {
47
- // Use the value of the CFN parameter
48
- instanceArn : instanceArnParam . valueAsString ,
49
- name : 'wmaugFullAdminPermissionSet' ,
50
- description : 'Permission set WMAUG owners will use' ,
51
- managedPolicies : [ 'arn:aws:iam::aws:policy/AdministratorAccess' ] ,
52
- } ) ;
67
+ const wmaugFullAdminPermissionSet = new sso . CfnPermissionSet (
68
+ this ,
69
+ "wmaugFullAdminPermissionSet" ,
70
+ {
71
+ // Use the value of the CFN parameter
72
+ instanceArn : instanceArnParam . valueAsString ,
73
+ name : "wmaugFullAdminPermissionSet" ,
74
+ description : "Permission set WMAUG owners will use" ,
75
+ managedPolicies : [ "arn:aws:iam::aws:policy/AdministratorAccess" ] ,
76
+ sessionDuration : "PT12H" ,
77
+ } ,
78
+ ) ;
53
79
54
80
// Assign moderator admin to moderator account
55
- new sso . CfnAssignment ( this , ' wmaugModeratorAdminModeratorAssignment' , {
81
+ new sso . CfnAssignment ( this , " wmaugModeratorAdminModeratorAssignment" , {
56
82
instanceArn : instanceArnParam . valueAsString ,
57
83
permissionSetArn : wmaugModeratorAdminPermissionSet . attrPermissionSetArn ,
58
- principalType : ' GROUP' ,
84
+ principalType : " GROUP" ,
59
85
principalId : wmaugModeratorAdminGroupId . valueAsString ,
60
86
targetId : wmaugModeratorAccountNumberParam . valueAsString ,
61
- targetType : ' AWS_ACCOUNT' ,
62
- } ) ;
87
+ targetType : " AWS_ACCOUNT" ,
88
+ } ) ;
63
89
64
90
// Assign full admin to management account
65
- new sso . CfnAssignment ( this , ' wmaugFullAdminManagementAssignment' , {
91
+ new sso . CfnAssignment ( this , " wmaugFullAdminManagementAssignment" , {
66
92
instanceArn : instanceArnParam . valueAsString ,
67
93
permissionSetArn : wmaugFullAdminPermissionSet . attrPermissionSetArn ,
68
- principalType : ' GROUP' ,
94
+ principalType : " GROUP" ,
69
95
principalId : wmaugFullAdminGroupId . valueAsString ,
70
96
targetId : wmaugManagementAccountNumberParam . valueAsString ,
71
- targetType : ' AWS_ACCOUNT' ,
97
+ targetType : " AWS_ACCOUNT" ,
72
98
} ) ;
73
99
74
100
// Assign full admin to moderator account
75
- new sso . CfnAssignment ( this , ' wmaugFullAdminModeratorAssignment' , {
101
+ new sso . CfnAssignment ( this , " wmaugFullAdminModeratorAssignment" , {
76
102
instanceArn : instanceArnParam . valueAsString ,
77
103
permissionSetArn : wmaugFullAdminPermissionSet . attrPermissionSetArn ,
78
- principalType : ' GROUP' ,
104
+ principalType : " GROUP" ,
79
105
principalId : wmaugFullAdminGroupId . valueAsString ,
80
106
targetId : wmaugModeratorAccountNumberParam . valueAsString ,
81
- targetType : ' AWS_ACCOUNT' ,
107
+ targetType : " AWS_ACCOUNT" ,
82
108
} ) ;
83
109
}
84
-
85
-
86
- }
110
+ }
0 commit comments