aws-cdk-github-oidc 2.4.1 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +5163 -107
- package/.nvmrc +1 -1
- package/API.md +1274 -131
- package/README.md +8 -0
- package/lib/iam-role-props.d.ts +2 -2
- package/lib/iam-role-props.js +1 -1
- package/lib/index.d.ts +3 -3
- package/lib/index.js +2 -1
- package/lib/provider.d.ts +13 -3
- package/lib/provider.js +21 -19
- package/lib/role.d.ts +4 -4
- package/lib/role.js +33 -33
- package/package.json +78 -63
- package/pnpm-workspace.yaml +19 -0
- package/sonar-project.properties +7 -0
- package/.gitattributes +0 -24
package/API.md
CHANGED
|
@@ -1,124 +1,1159 @@
|
|
|
1
|
-
# API Reference <a name="API Reference"></a>
|
|
1
|
+
# API Reference <a name="API Reference" id="api-reference"></a>
|
|
2
2
|
|
|
3
|
-
## Constructs <a name="Constructs"></a>
|
|
3
|
+
## Constructs <a name="Constructs" id="Constructs"></a>
|
|
4
4
|
|
|
5
|
-
### GithubActionsIdentityProvider <a name="aws-cdk-github-oidc.GithubActionsIdentityProvider"></a>
|
|
5
|
+
### GithubActionsIdentityProvider <a name="GithubActionsIdentityProvider" id="aws-cdk-github-oidc.GithubActionsIdentityProvider"></a>
|
|
6
6
|
|
|
7
|
-
- *Implements:*
|
|
7
|
+
- *Implements:* <a href="#aws-cdk-github-oidc.IGithubActionsIdentityProvider">IGithubActionsIdentityProvider</a>
|
|
8
8
|
|
|
9
9
|
Github Actions as OpenID Connect Identity Provider for AWS IAM. There can be only one (per AWS Account).
|
|
10
10
|
|
|
11
11
|
Use `fromAccount` to retrieve a reference to existing Github OIDC provider.
|
|
12
12
|
|
|
13
|
-
> https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services
|
|
13
|
+
> [https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services)
|
|
14
14
|
|
|
15
|
-
#### Initializers <a name="aws-cdk-github-oidc.GithubActionsIdentityProvider.Initializer"></a>
|
|
15
|
+
#### Initializers <a name="Initializers" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.Initializer"></a>
|
|
16
16
|
|
|
17
17
|
```typescript
|
|
18
18
|
import { GithubActionsIdentityProvider } from 'aws-cdk-github-oidc'
|
|
19
19
|
|
|
20
|
-
new GithubActionsIdentityProvider(scope: Construct, id: string)
|
|
20
|
+
new GithubActionsIdentityProvider(scope: Construct, id: string, props?: GithubActionsIdentityProviderProps)
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
| **Name** | **Type** | **Description** |
|
|
24
|
+
| --- | --- | --- |
|
|
25
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsIdentityProvider.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | CDK Stack or Construct to which the provider is assigned to. |
|
|
26
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsIdentityProvider.Initializer.parameter.id">id</a></code> | <code>string</code> | CDK Construct ID given to the construct. |
|
|
27
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsIdentityProvider.Initializer.parameter.props">props</a></code> | <code><a href="#aws-cdk-github-oidc.GithubActionsIdentityProviderProps">GithubActionsIdentityProviderProps</a></code> | optional properties for the provider. |
|
|
24
28
|
|
|
25
|
-
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
##### `scope`<sup>Required</sup> <a name="scope" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.Initializer.parameter.scope"></a>
|
|
32
|
+
|
|
33
|
+
- *Type:* constructs.Construct
|
|
34
|
+
|
|
35
|
+
CDK Stack or Construct to which the provider is assigned to.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
##### `id`<sup>Required</sup> <a name="id" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.Initializer.parameter.id"></a>
|
|
40
|
+
|
|
41
|
+
- *Type:* string
|
|
42
|
+
|
|
43
|
+
CDK Construct ID given to the construct.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
##### `props`<sup>Optional</sup> <a name="props" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.Initializer.parameter.props"></a>
|
|
48
|
+
|
|
49
|
+
- *Type:* <a href="#aws-cdk-github-oidc.GithubActionsIdentityProviderProps">GithubActionsIdentityProviderProps</a>
|
|
50
|
+
|
|
51
|
+
optional properties for the provider.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
#### Methods <a name="Methods" id="Methods"></a>
|
|
56
|
+
|
|
57
|
+
| **Name** | **Description** |
|
|
58
|
+
| --- | --- |
|
|
59
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsIdentityProvider.toString">toString</a></code> | Returns a string representation of this construct. |
|
|
60
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsIdentityProvider.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
##### `toString` <a name="toString" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.toString"></a>
|
|
65
|
+
|
|
66
|
+
```typescript
|
|
67
|
+
public toString(): string
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Returns a string representation of this construct.
|
|
71
|
+
|
|
72
|
+
##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.applyRemovalPolicy"></a>
|
|
73
|
+
|
|
74
|
+
```typescript
|
|
75
|
+
public applyRemovalPolicy(policy: RemovalPolicy): void
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Apply the given removal policy to this resource.
|
|
79
|
+
|
|
80
|
+
The Removal Policy controls what happens to this resource when it stops
|
|
81
|
+
being managed by CloudFormation, either because you've removed it from the
|
|
82
|
+
CDK application or because you've made a change that requires the resource
|
|
83
|
+
to be replaced.
|
|
84
|
+
|
|
85
|
+
The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
|
|
86
|
+
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
|
|
87
|
+
|
|
88
|
+
###### `policy`<sup>Required</sup> <a name="policy" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.applyRemovalPolicy.parameter.policy"></a>
|
|
89
|
+
|
|
90
|
+
- *Type:* aws-cdk-lib.RemovalPolicy
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
#### Static Functions <a name="Static Functions" id="Static Functions"></a>
|
|
95
|
+
|
|
96
|
+
| **Name** | **Description** |
|
|
97
|
+
| --- | --- |
|
|
98
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsIdentityProvider.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
|
|
99
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsIdentityProvider.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
|
|
100
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsIdentityProvider.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
|
|
101
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsIdentityProvider.fromOpenIdConnectProviderArn">fromOpenIdConnectProviderArn</a></code> | Imports an Open ID connect provider from an ARN. |
|
|
102
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsIdentityProvider.fromAccount">fromAccount</a></code> | Retrieve a reference to existing Github OIDC provider in your AWS account. |
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
##### `isConstruct` <a name="isConstruct" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.isConstruct"></a>
|
|
107
|
+
|
|
108
|
+
```typescript
|
|
109
|
+
import { GithubActionsIdentityProvider } from 'aws-cdk-github-oidc'
|
|
110
|
+
|
|
111
|
+
GithubActionsIdentityProvider.isConstruct(x: any)
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Checks if `x` is a construct.
|
|
115
|
+
|
|
116
|
+
Use this method instead of `instanceof` to properly detect `Construct`
|
|
117
|
+
instances, even when the construct library is symlinked.
|
|
118
|
+
|
|
119
|
+
Explanation: in JavaScript, multiple copies of the `constructs` library on
|
|
120
|
+
disk are seen as independent, completely different libraries. As a
|
|
121
|
+
consequence, the class `Construct` in each copy of the `constructs` library
|
|
122
|
+
is seen as a different class, and an instance of one class will not test as
|
|
123
|
+
`instanceof` the other class. `npm install` will not create installations
|
|
124
|
+
like this, but users may manually symlink construct libraries together or
|
|
125
|
+
use a monorepo tool: in those cases, multiple copies of the `constructs`
|
|
126
|
+
library can be accidentally installed, and `instanceof` will behave
|
|
127
|
+
unpredictably. It is safest to avoid using `instanceof`, and using
|
|
128
|
+
this type-testing method instead.
|
|
129
|
+
|
|
130
|
+
###### `x`<sup>Required</sup> <a name="x" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.isConstruct.parameter.x"></a>
|
|
131
|
+
|
|
132
|
+
- *Type:* any
|
|
133
|
+
|
|
134
|
+
Any object.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
##### `isOwnedResource` <a name="isOwnedResource" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.isOwnedResource"></a>
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
import { GithubActionsIdentityProvider } from 'aws-cdk-github-oidc'
|
|
142
|
+
|
|
143
|
+
GithubActionsIdentityProvider.isOwnedResource(construct: IConstruct)
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Returns true if the construct was created by CDK, and false otherwise.
|
|
147
|
+
|
|
148
|
+
###### `construct`<sup>Required</sup> <a name="construct" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.isOwnedResource.parameter.construct"></a>
|
|
149
|
+
|
|
150
|
+
- *Type:* constructs.IConstruct
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
##### `isResource` <a name="isResource" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.isResource"></a>
|
|
155
|
+
|
|
156
|
+
```typescript
|
|
157
|
+
import { GithubActionsIdentityProvider } from 'aws-cdk-github-oidc'
|
|
158
|
+
|
|
159
|
+
GithubActionsIdentityProvider.isResource(construct: IConstruct)
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Check whether the given construct is a Resource.
|
|
163
|
+
|
|
164
|
+
###### `construct`<sup>Required</sup> <a name="construct" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.isResource.parameter.construct"></a>
|
|
165
|
+
|
|
166
|
+
- *Type:* constructs.IConstruct
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
##### `fromOpenIdConnectProviderArn` <a name="fromOpenIdConnectProviderArn" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.fromOpenIdConnectProviderArn"></a>
|
|
171
|
+
|
|
172
|
+
```typescript
|
|
173
|
+
import { GithubActionsIdentityProvider } from 'aws-cdk-github-oidc'
|
|
174
|
+
|
|
175
|
+
GithubActionsIdentityProvider.fromOpenIdConnectProviderArn(scope: Construct, id: string, openIdConnectProviderArn: string)
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Imports an Open ID connect provider from an ARN.
|
|
179
|
+
|
|
180
|
+
###### `scope`<sup>Required</sup> <a name="scope" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.fromOpenIdConnectProviderArn.parameter.scope"></a>
|
|
181
|
+
|
|
182
|
+
- *Type:* constructs.Construct
|
|
183
|
+
|
|
184
|
+
The definition scope.
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
###### `id`<sup>Required</sup> <a name="id" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.fromOpenIdConnectProviderArn.parameter.id"></a>
|
|
189
|
+
|
|
190
|
+
- *Type:* string
|
|
191
|
+
|
|
192
|
+
ID of the construct.
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
###### `openIdConnectProviderArn`<sup>Required</sup> <a name="openIdConnectProviderArn" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.fromOpenIdConnectProviderArn.parameter.openIdConnectProviderArn"></a>
|
|
197
|
+
|
|
198
|
+
- *Type:* string
|
|
199
|
+
|
|
200
|
+
the ARN to import.
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
##### `fromAccount` <a name="fromAccount" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.fromAccount"></a>
|
|
205
|
+
|
|
206
|
+
```typescript
|
|
207
|
+
import { GithubActionsIdentityProvider } from 'aws-cdk-github-oidc'
|
|
208
|
+
|
|
209
|
+
GithubActionsIdentityProvider.fromAccount(scope: Construct, id: string)
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
Retrieve a reference to existing Github OIDC provider in your AWS account.
|
|
213
|
+
|
|
214
|
+
An AWS account can only have single Github OIDC provider configured into it,
|
|
215
|
+
so internally the reference is made by constructing the ARN from AWS
|
|
216
|
+
Account ID & Github issuer URL.
|
|
217
|
+
|
|
218
|
+
*Example*
|
|
219
|
+
|
|
220
|
+
```typescript
|
|
221
|
+
GithubActionsIdentityProvider.fromAccount(scope, "GithubProvider");
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
###### `scope`<sup>Required</sup> <a name="scope" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.fromAccount.parameter.scope"></a>
|
|
226
|
+
|
|
227
|
+
- *Type:* constructs.Construct
|
|
228
|
+
|
|
229
|
+
CDK Stack or Construct to which the provider is assigned to.
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
###### `id`<sup>Required</sup> <a name="id" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.fromAccount.parameter.id"></a>
|
|
234
|
+
|
|
235
|
+
- *Type:* string
|
|
236
|
+
|
|
237
|
+
CDK Construct ID given to the construct.
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
#### Properties <a name="Properties" id="Properties"></a>
|
|
242
|
+
|
|
243
|
+
| **Name** | **Type** | **Description** |
|
|
244
|
+
| --- | --- | --- |
|
|
245
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsIdentityProvider.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
|
|
246
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsIdentityProvider.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
|
|
247
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsIdentityProvider.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
|
|
248
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsIdentityProvider.property.oidcProviderRef">oidcProviderRef</a></code> | <code>aws-cdk-lib.interfaces.aws_iam.OIDCProviderReference</code> | A reference to a OIDCProvider resource. |
|
|
249
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsIdentityProvider.property.openIdConnectProviderArn">openIdConnectProviderArn</a></code> | <code>string</code> | The Amazon Resource Name (ARN) of the IAM OpenID Connect provider. |
|
|
250
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsIdentityProvider.property.openIdConnectProviderIssuer">openIdConnectProviderIssuer</a></code> | <code>string</code> | The issuer for OIDC Provider. |
|
|
251
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsIdentityProvider.property.openIdConnectProviderthumbprints">openIdConnectProviderthumbprints</a></code> | <code>string</code> | The thumbprints configured for this provider. |
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
##### `node`<sup>Required</sup> <a name="node" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.property.node"></a>
|
|
256
|
+
|
|
257
|
+
```typescript
|
|
258
|
+
public readonly node: Node;
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
- *Type:* constructs.Node
|
|
262
|
+
|
|
263
|
+
The tree node.
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
##### `env`<sup>Required</sup> <a name="env" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.property.env"></a>
|
|
268
|
+
|
|
269
|
+
```typescript
|
|
270
|
+
public readonly env: ResourceEnvironment;
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment
|
|
274
|
+
|
|
275
|
+
The environment this resource belongs to.
|
|
276
|
+
|
|
277
|
+
For resources that are created and managed in a Stack (those created by
|
|
278
|
+
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
|
|
279
|
+
is always the same as the environment of the stack they belong to.
|
|
280
|
+
|
|
281
|
+
For referenced resources (those obtained from referencing methods like
|
|
282
|
+
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
|
|
283
|
+
different than the stack they were imported into.
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
##### `stack`<sup>Required</sup> <a name="stack" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.property.stack"></a>
|
|
288
|
+
|
|
289
|
+
```typescript
|
|
290
|
+
public readonly stack: Stack;
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
- *Type:* aws-cdk-lib.Stack
|
|
294
|
+
|
|
295
|
+
The stack in which this resource is defined.
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
##### `oidcProviderRef`<sup>Required</sup> <a name="oidcProviderRef" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.property.oidcProviderRef"></a>
|
|
300
|
+
|
|
301
|
+
```typescript
|
|
302
|
+
public readonly oidcProviderRef: OIDCProviderReference;
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
- *Type:* aws-cdk-lib.interfaces.aws_iam.OIDCProviderReference
|
|
306
|
+
|
|
307
|
+
A reference to a OIDCProvider resource.
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
##### `openIdConnectProviderArn`<sup>Required</sup> <a name="openIdConnectProviderArn" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.property.openIdConnectProviderArn"></a>
|
|
312
|
+
|
|
313
|
+
```typescript
|
|
314
|
+
public readonly openIdConnectProviderArn: string;
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
- *Type:* string
|
|
318
|
+
|
|
319
|
+
The Amazon Resource Name (ARN) of the IAM OpenID Connect provider.
|
|
320
|
+
|
|
321
|
+
---
|
|
322
|
+
|
|
323
|
+
##### `openIdConnectProviderIssuer`<sup>Required</sup> <a name="openIdConnectProviderIssuer" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.property.openIdConnectProviderIssuer"></a>
|
|
324
|
+
|
|
325
|
+
```typescript
|
|
326
|
+
public readonly openIdConnectProviderIssuer: string;
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
- *Type:* string
|
|
330
|
+
|
|
331
|
+
The issuer for OIDC Provider.
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
##### `openIdConnectProviderthumbprints`<sup>Required</sup> <a name="openIdConnectProviderthumbprints" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.property.openIdConnectProviderthumbprints"></a>
|
|
336
|
+
|
|
337
|
+
```typescript
|
|
338
|
+
public readonly openIdConnectProviderthumbprints: string;
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
- *Type:* string
|
|
342
|
+
|
|
343
|
+
The thumbprints configured for this provider.
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
|
|
347
|
+
#### Constants <a name="Constants" id="Constants"></a>
|
|
348
|
+
|
|
349
|
+
| **Name** | **Type** | **Description** |
|
|
350
|
+
| --- | --- | --- |
|
|
351
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsIdentityProvider.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |
|
|
352
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsIdentityProvider.property.issuer">issuer</a></code> | <code>string</code> | *No description.* |
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.property.PROPERTY_INJECTION_ID"></a>
|
|
357
|
+
|
|
358
|
+
```typescript
|
|
359
|
+
public readonly PROPERTY_INJECTION_ID: string;
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
- *Type:* string
|
|
363
|
+
|
|
364
|
+
Uniquely identifies this class.
|
|
365
|
+
|
|
366
|
+
---
|
|
367
|
+
|
|
368
|
+
##### `issuer`<sup>Required</sup> <a name="issuer" id="aws-cdk-github-oidc.GithubActionsIdentityProvider.property.issuer"></a>
|
|
369
|
+
|
|
370
|
+
```typescript
|
|
371
|
+
public readonly issuer: string;
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
- *Type:* string
|
|
375
|
+
|
|
376
|
+
---
|
|
377
|
+
|
|
378
|
+
### GithubActionsRole <a name="GithubActionsRole" id="aws-cdk-github-oidc.GithubActionsRole"></a>
|
|
379
|
+
|
|
380
|
+
Define an IAM Role that can be assumed by Github Actions workflow via Github OpenID Connect Identity Provider.
|
|
381
|
+
|
|
382
|
+
Besides `GithubConfiguration`, you may pass in any `iam.RoleProps` except `assumedBy`
|
|
383
|
+
which will be defined by this construct (CDK will fail if you do).
|
|
384
|
+
|
|
385
|
+
*Example*
|
|
386
|
+
|
|
387
|
+
```typescript
|
|
388
|
+
const uploadRole = new GithubActionsRole(scope, "UploadRole", {
|
|
389
|
+
provider: GithubActionsIdentityProvider.fromAccount(scope, "GithubProvider"),
|
|
390
|
+
owner: 'octo-org',
|
|
391
|
+
repo: 'octo-repo',
|
|
392
|
+
filter: 'ref:refs/tags/v*',
|
|
393
|
+
roleName: 'MyUploadRole',
|
|
394
|
+
});
|
|
395
|
+
|
|
396
|
+
myBucket.grantWrite(uploadRole);
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
|
|
400
|
+
#### Initializers <a name="Initializers" id="aws-cdk-github-oidc.GithubActionsRole.Initializer"></a>
|
|
401
|
+
|
|
402
|
+
```typescript
|
|
403
|
+
import { GithubActionsRole } from 'aws-cdk-github-oidc'
|
|
404
|
+
|
|
405
|
+
new GithubActionsRole(scope: Construct, id: string, props: GithubActionsRoleProps)
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
| **Name** | **Type** | **Description** |
|
|
409
|
+
| --- | --- | --- |
|
|
410
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
|
|
411
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
|
|
412
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.Initializer.parameter.props">props</a></code> | <code><a href="#aws-cdk-github-oidc.GithubActionsRoleProps">GithubActionsRoleProps</a></code> | *No description.* |
|
|
413
|
+
|
|
414
|
+
---
|
|
415
|
+
|
|
416
|
+
##### `scope`<sup>Required</sup> <a name="scope" id="aws-cdk-github-oidc.GithubActionsRole.Initializer.parameter.scope"></a>
|
|
417
|
+
|
|
418
|
+
- *Type:* constructs.Construct
|
|
419
|
+
|
|
420
|
+
---
|
|
421
|
+
|
|
422
|
+
##### `id`<sup>Required</sup> <a name="id" id="aws-cdk-github-oidc.GithubActionsRole.Initializer.parameter.id"></a>
|
|
423
|
+
|
|
424
|
+
- *Type:* string
|
|
425
|
+
|
|
426
|
+
---
|
|
427
|
+
|
|
428
|
+
##### `props`<sup>Required</sup> <a name="props" id="aws-cdk-github-oidc.GithubActionsRole.Initializer.parameter.props"></a>
|
|
429
|
+
|
|
430
|
+
- *Type:* <a href="#aws-cdk-github-oidc.GithubActionsRoleProps">GithubActionsRoleProps</a>
|
|
431
|
+
|
|
432
|
+
---
|
|
433
|
+
|
|
434
|
+
#### Methods <a name="Methods" id="Methods"></a>
|
|
435
|
+
|
|
436
|
+
| **Name** | **Description** |
|
|
437
|
+
| --- | --- |
|
|
438
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.toString">toString</a></code> | Returns a string representation of this construct. |
|
|
439
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.applyRemovalPolicy">applyRemovalPolicy</a></code> | Skip applyRemovalPolicy if role synthesis is prevented by customizeRoles. |
|
|
440
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.addManagedPolicy">addManagedPolicy</a></code> | Attaches a managed policy to this role. |
|
|
441
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.addToPolicy">addToPolicy</a></code> | Add to the policy of this principal. |
|
|
442
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.addToPrincipalPolicy">addToPrincipalPolicy</a></code> | Adds a permission to the role's default policy document. |
|
|
443
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.attachInlinePolicy">attachInlinePolicy</a></code> | Attaches a policy to this role. |
|
|
444
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.grant">grant</a></code> | Grant the actions defined in actions to the identity Principal on this resource. |
|
|
445
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.grantAssumeRole">grantAssumeRole</a></code> | Grant permissions to the given principal to assume this role. |
|
|
446
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.grantPassRole">grantPassRole</a></code> | Grant permissions to the given principal to pass this role. |
|
|
447
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.withoutPolicyUpdates">withoutPolicyUpdates</a></code> | Return a copy of this Role object whose Policies will not be updated. |
|
|
448
|
+
|
|
449
|
+
---
|
|
450
|
+
|
|
451
|
+
##### `toString` <a name="toString" id="aws-cdk-github-oidc.GithubActionsRole.toString"></a>
|
|
452
|
+
|
|
453
|
+
```typescript
|
|
454
|
+
public toString(): string
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
Returns a string representation of this construct.
|
|
458
|
+
|
|
459
|
+
##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="aws-cdk-github-oidc.GithubActionsRole.applyRemovalPolicy"></a>
|
|
460
|
+
|
|
461
|
+
```typescript
|
|
462
|
+
public applyRemovalPolicy(policy: RemovalPolicy): void
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
Skip applyRemovalPolicy if role synthesis is prevented by customizeRoles.
|
|
466
|
+
|
|
467
|
+
Because in this case, this construct does not have a CfnResource in the tree.
|
|
468
|
+
|
|
469
|
+
###### `policy`<sup>Required</sup> <a name="policy" id="aws-cdk-github-oidc.GithubActionsRole.applyRemovalPolicy.parameter.policy"></a>
|
|
470
|
+
|
|
471
|
+
- *Type:* aws-cdk-lib.RemovalPolicy
|
|
472
|
+
|
|
473
|
+
RemovalPolicy.
|
|
474
|
+
|
|
475
|
+
---
|
|
476
|
+
|
|
477
|
+
##### `addManagedPolicy` <a name="addManagedPolicy" id="aws-cdk-github-oidc.GithubActionsRole.addManagedPolicy"></a>
|
|
478
|
+
|
|
479
|
+
```typescript
|
|
480
|
+
public addManagedPolicy(policy: IManagedPolicy): void
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
Attaches a managed policy to this role.
|
|
484
|
+
|
|
485
|
+
###### `policy`<sup>Required</sup> <a name="policy" id="aws-cdk-github-oidc.GithubActionsRole.addManagedPolicy.parameter.policy"></a>
|
|
486
|
+
|
|
487
|
+
- *Type:* aws-cdk-lib.aws_iam.IManagedPolicy
|
|
488
|
+
|
|
489
|
+
The the managed policy to attach.
|
|
490
|
+
|
|
491
|
+
---
|
|
492
|
+
|
|
493
|
+
##### `addToPolicy` <a name="addToPolicy" id="aws-cdk-github-oidc.GithubActionsRole.addToPolicy"></a>
|
|
494
|
+
|
|
495
|
+
```typescript
|
|
496
|
+
public addToPolicy(statement: PolicyStatement): boolean
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
Add to the policy of this principal.
|
|
500
|
+
|
|
501
|
+
###### `statement`<sup>Required</sup> <a name="statement" id="aws-cdk-github-oidc.GithubActionsRole.addToPolicy.parameter.statement"></a>
|
|
502
|
+
|
|
503
|
+
- *Type:* aws-cdk-lib.aws_iam.PolicyStatement
|
|
504
|
+
|
|
505
|
+
---
|
|
506
|
+
|
|
507
|
+
##### `addToPrincipalPolicy` <a name="addToPrincipalPolicy" id="aws-cdk-github-oidc.GithubActionsRole.addToPrincipalPolicy"></a>
|
|
508
|
+
|
|
509
|
+
```typescript
|
|
510
|
+
public addToPrincipalPolicy(statement: PolicyStatement): AddToPrincipalPolicyResult
|
|
511
|
+
```
|
|
512
|
+
|
|
513
|
+
Adds a permission to the role's default policy document.
|
|
514
|
+
|
|
515
|
+
If there is no default policy attached to this role, it will be created.
|
|
516
|
+
|
|
517
|
+
###### `statement`<sup>Required</sup> <a name="statement" id="aws-cdk-github-oidc.GithubActionsRole.addToPrincipalPolicy.parameter.statement"></a>
|
|
518
|
+
|
|
519
|
+
- *Type:* aws-cdk-lib.aws_iam.PolicyStatement
|
|
520
|
+
|
|
521
|
+
The permission statement to add to the policy document.
|
|
522
|
+
|
|
523
|
+
---
|
|
524
|
+
|
|
525
|
+
##### `attachInlinePolicy` <a name="attachInlinePolicy" id="aws-cdk-github-oidc.GithubActionsRole.attachInlinePolicy"></a>
|
|
526
|
+
|
|
527
|
+
```typescript
|
|
528
|
+
public attachInlinePolicy(policy: Policy): void
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
Attaches a policy to this role.
|
|
532
|
+
|
|
533
|
+
###### `policy`<sup>Required</sup> <a name="policy" id="aws-cdk-github-oidc.GithubActionsRole.attachInlinePolicy.parameter.policy"></a>
|
|
534
|
+
|
|
535
|
+
- *Type:* aws-cdk-lib.aws_iam.Policy
|
|
536
|
+
|
|
537
|
+
The policy to attach.
|
|
538
|
+
|
|
539
|
+
---
|
|
540
|
+
|
|
541
|
+
##### `grant` <a name="grant" id="aws-cdk-github-oidc.GithubActionsRole.grant"></a>
|
|
542
|
+
|
|
543
|
+
```typescript
|
|
544
|
+
public grant(grantee: IPrincipal, actions: ...string[]): Grant
|
|
545
|
+
```
|
|
546
|
+
|
|
547
|
+
Grant the actions defined in actions to the identity Principal on this resource.
|
|
548
|
+
|
|
549
|
+
###### `grantee`<sup>Required</sup> <a name="grantee" id="aws-cdk-github-oidc.GithubActionsRole.grant.parameter.grantee"></a>
|
|
550
|
+
|
|
551
|
+
- *Type:* aws-cdk-lib.aws_iam.IPrincipal
|
|
552
|
+
|
|
553
|
+
---
|
|
554
|
+
|
|
555
|
+
###### `actions`<sup>Required</sup> <a name="actions" id="aws-cdk-github-oidc.GithubActionsRole.grant.parameter.actions"></a>
|
|
556
|
+
|
|
557
|
+
- *Type:* ...string[]
|
|
558
|
+
|
|
559
|
+
---
|
|
560
|
+
|
|
561
|
+
##### `grantAssumeRole` <a name="grantAssumeRole" id="aws-cdk-github-oidc.GithubActionsRole.grantAssumeRole"></a>
|
|
562
|
+
|
|
563
|
+
```typescript
|
|
564
|
+
public grantAssumeRole(identity: IPrincipal): Grant
|
|
565
|
+
```
|
|
566
|
+
|
|
567
|
+
Grant permissions to the given principal to assume this role.
|
|
568
|
+
|
|
569
|
+
###### `identity`<sup>Required</sup> <a name="identity" id="aws-cdk-github-oidc.GithubActionsRole.grantAssumeRole.parameter.identity"></a>
|
|
570
|
+
|
|
571
|
+
- *Type:* aws-cdk-lib.aws_iam.IPrincipal
|
|
572
|
+
|
|
573
|
+
---
|
|
574
|
+
|
|
575
|
+
##### `grantPassRole` <a name="grantPassRole" id="aws-cdk-github-oidc.GithubActionsRole.grantPassRole"></a>
|
|
576
|
+
|
|
577
|
+
```typescript
|
|
578
|
+
public grantPassRole(identity: IPrincipal): Grant
|
|
579
|
+
```
|
|
580
|
+
|
|
581
|
+
Grant permissions to the given principal to pass this role.
|
|
582
|
+
|
|
583
|
+
###### `identity`<sup>Required</sup> <a name="identity" id="aws-cdk-github-oidc.GithubActionsRole.grantPassRole.parameter.identity"></a>
|
|
584
|
+
|
|
585
|
+
- *Type:* aws-cdk-lib.aws_iam.IPrincipal
|
|
586
|
+
|
|
587
|
+
---
|
|
588
|
+
|
|
589
|
+
##### `withoutPolicyUpdates` <a name="withoutPolicyUpdates" id="aws-cdk-github-oidc.GithubActionsRole.withoutPolicyUpdates"></a>
|
|
590
|
+
|
|
591
|
+
```typescript
|
|
592
|
+
public withoutPolicyUpdates(options?: WithoutPolicyUpdatesOptions): IRole
|
|
593
|
+
```
|
|
594
|
+
|
|
595
|
+
Return a copy of this Role object whose Policies will not be updated.
|
|
596
|
+
|
|
597
|
+
Use the object returned by this method if you want this Role to be used by
|
|
598
|
+
a construct without it automatically updating the Role's Policies.
|
|
599
|
+
|
|
600
|
+
If you do, you are responsible for adding the correct statements to the
|
|
601
|
+
Role's policies yourself.
|
|
602
|
+
|
|
603
|
+
###### `options`<sup>Optional</sup> <a name="options" id="aws-cdk-github-oidc.GithubActionsRole.withoutPolicyUpdates.parameter.options"></a>
|
|
604
|
+
|
|
605
|
+
- *Type:* aws-cdk-lib.aws_iam.WithoutPolicyUpdatesOptions
|
|
606
|
+
|
|
607
|
+
---
|
|
608
|
+
|
|
609
|
+
#### Static Functions <a name="Static Functions" id="Static Functions"></a>
|
|
610
|
+
|
|
611
|
+
| **Name** | **Description** |
|
|
612
|
+
| --- | --- |
|
|
613
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
|
|
614
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
|
|
615
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
|
|
616
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.customizeRoles">customizeRoles</a></code> | Customize the creation of IAM roles within the given scope. |
|
|
617
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.fromLookup">fromLookup</a></code> | Lookup an existing Role. |
|
|
618
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.fromRoleArn">fromRoleArn</a></code> | Import an external role by ARN. |
|
|
619
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.fromRoleName">fromRoleName</a></code> | Import an external role by name. |
|
|
620
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.isRole">isRole</a></code> | Return whether the given object is a Role. |
|
|
621
|
+
|
|
622
|
+
---
|
|
623
|
+
|
|
624
|
+
##### `isConstruct` <a name="isConstruct" id="aws-cdk-github-oidc.GithubActionsRole.isConstruct"></a>
|
|
625
|
+
|
|
626
|
+
```typescript
|
|
627
|
+
import { GithubActionsRole } from 'aws-cdk-github-oidc'
|
|
628
|
+
|
|
629
|
+
GithubActionsRole.isConstruct(x: any)
|
|
630
|
+
```
|
|
631
|
+
|
|
632
|
+
Checks if `x` is a construct.
|
|
633
|
+
|
|
634
|
+
Use this method instead of `instanceof` to properly detect `Construct`
|
|
635
|
+
instances, even when the construct library is symlinked.
|
|
636
|
+
|
|
637
|
+
Explanation: in JavaScript, multiple copies of the `constructs` library on
|
|
638
|
+
disk are seen as independent, completely different libraries. As a
|
|
639
|
+
consequence, the class `Construct` in each copy of the `constructs` library
|
|
640
|
+
is seen as a different class, and an instance of one class will not test as
|
|
641
|
+
`instanceof` the other class. `npm install` will not create installations
|
|
642
|
+
like this, but users may manually symlink construct libraries together or
|
|
643
|
+
use a monorepo tool: in those cases, multiple copies of the `constructs`
|
|
644
|
+
library can be accidentally installed, and `instanceof` will behave
|
|
645
|
+
unpredictably. It is safest to avoid using `instanceof`, and using
|
|
646
|
+
this type-testing method instead.
|
|
647
|
+
|
|
648
|
+
###### `x`<sup>Required</sup> <a name="x" id="aws-cdk-github-oidc.GithubActionsRole.isConstruct.parameter.x"></a>
|
|
649
|
+
|
|
650
|
+
- *Type:* any
|
|
651
|
+
|
|
652
|
+
Any object.
|
|
653
|
+
|
|
654
|
+
---
|
|
655
|
+
|
|
656
|
+
##### `isOwnedResource` <a name="isOwnedResource" id="aws-cdk-github-oidc.GithubActionsRole.isOwnedResource"></a>
|
|
657
|
+
|
|
658
|
+
```typescript
|
|
659
|
+
import { GithubActionsRole } from 'aws-cdk-github-oidc'
|
|
660
|
+
|
|
661
|
+
GithubActionsRole.isOwnedResource(construct: IConstruct)
|
|
662
|
+
```
|
|
663
|
+
|
|
664
|
+
Returns true if the construct was created by CDK, and false otherwise.
|
|
665
|
+
|
|
666
|
+
###### `construct`<sup>Required</sup> <a name="construct" id="aws-cdk-github-oidc.GithubActionsRole.isOwnedResource.parameter.construct"></a>
|
|
667
|
+
|
|
668
|
+
- *Type:* constructs.IConstruct
|
|
669
|
+
|
|
670
|
+
---
|
|
671
|
+
|
|
672
|
+
##### `isResource` <a name="isResource" id="aws-cdk-github-oidc.GithubActionsRole.isResource"></a>
|
|
673
|
+
|
|
674
|
+
```typescript
|
|
675
|
+
import { GithubActionsRole } from 'aws-cdk-github-oidc'
|
|
676
|
+
|
|
677
|
+
GithubActionsRole.isResource(construct: IConstruct)
|
|
678
|
+
```
|
|
679
|
+
|
|
680
|
+
Check whether the given construct is a Resource.
|
|
681
|
+
|
|
682
|
+
###### `construct`<sup>Required</sup> <a name="construct" id="aws-cdk-github-oidc.GithubActionsRole.isResource.parameter.construct"></a>
|
|
683
|
+
|
|
684
|
+
- *Type:* constructs.IConstruct
|
|
685
|
+
|
|
686
|
+
---
|
|
687
|
+
|
|
688
|
+
##### `customizeRoles` <a name="customizeRoles" id="aws-cdk-github-oidc.GithubActionsRole.customizeRoles"></a>
|
|
689
|
+
|
|
690
|
+
```typescript
|
|
691
|
+
import { GithubActionsRole } from 'aws-cdk-github-oidc'
|
|
692
|
+
|
|
693
|
+
GithubActionsRole.customizeRoles(scope: Construct, options?: CustomizeRolesOptions)
|
|
694
|
+
```
|
|
695
|
+
|
|
696
|
+
Customize the creation of IAM roles within the given scope.
|
|
697
|
+
|
|
698
|
+
It is recommended that you **do not** use this method and instead allow
|
|
699
|
+
CDK to manage role creation. This should only be used
|
|
700
|
+
in environments where CDK applications are not allowed to created IAM roles.
|
|
701
|
+
|
|
702
|
+
This can be used to prevent the CDK application from creating roles
|
|
703
|
+
within the given scope and instead replace the references to the roles with
|
|
704
|
+
precreated role names. A report will be synthesized in the cloud assembly (i.e. cdk.out)
|
|
705
|
+
that will contain the list of IAM roles that would have been created along with the
|
|
706
|
+
IAM policy statements that the role should contain. This report can then be used
|
|
707
|
+
to create the IAM roles outside of CDK and then the created role names can be provided
|
|
708
|
+
in `usePrecreatedRoles`.
|
|
709
|
+
|
|
710
|
+
*Example*
|
|
711
|
+
|
|
712
|
+
```typescript
|
|
713
|
+
declare const app: App;
|
|
714
|
+
iam.Role.customizeRoles(app, {
|
|
715
|
+
usePrecreatedRoles: {
|
|
716
|
+
'ConstructPath/To/Role': 'my-precreated-role-name',
|
|
717
|
+
},
|
|
718
|
+
});
|
|
719
|
+
```
|
|
720
|
+
|
|
721
|
+
|
|
722
|
+
###### `scope`<sup>Required</sup> <a name="scope" id="aws-cdk-github-oidc.GithubActionsRole.customizeRoles.parameter.scope"></a>
|
|
723
|
+
|
|
724
|
+
- *Type:* constructs.Construct
|
|
725
|
+
|
|
726
|
+
construct scope to customize role creation.
|
|
727
|
+
|
|
728
|
+
---
|
|
729
|
+
|
|
730
|
+
###### `options`<sup>Optional</sup> <a name="options" id="aws-cdk-github-oidc.GithubActionsRole.customizeRoles.parameter.options"></a>
|
|
731
|
+
|
|
732
|
+
- *Type:* aws-cdk-lib.aws_iam.CustomizeRolesOptions
|
|
733
|
+
|
|
734
|
+
options for configuring role creation.
|
|
735
|
+
|
|
736
|
+
---
|
|
737
|
+
|
|
738
|
+
##### `fromLookup` <a name="fromLookup" id="aws-cdk-github-oidc.GithubActionsRole.fromLookup"></a>
|
|
739
|
+
|
|
740
|
+
```typescript
|
|
741
|
+
import { GithubActionsRole } from 'aws-cdk-github-oidc'
|
|
26
742
|
|
|
27
|
-
|
|
743
|
+
GithubActionsRole.fromLookup(scope: Construct, id: string, options: RoleLookupOptions)
|
|
744
|
+
```
|
|
28
745
|
|
|
29
|
-
|
|
746
|
+
Lookup an existing Role.
|
|
30
747
|
|
|
31
|
-
|
|
748
|
+
###### `scope`<sup>Required</sup> <a name="scope" id="aws-cdk-github-oidc.GithubActionsRole.fromLookup.parameter.scope"></a>
|
|
32
749
|
|
|
33
|
-
- *Type:*
|
|
750
|
+
- *Type:* constructs.Construct
|
|
34
751
|
|
|
35
|
-
|
|
752
|
+
---
|
|
753
|
+
|
|
754
|
+
###### `id`<sup>Required</sup> <a name="id" id="aws-cdk-github-oidc.GithubActionsRole.fromLookup.parameter.id"></a>
|
|
755
|
+
|
|
756
|
+
- *Type:* string
|
|
36
757
|
|
|
37
758
|
---
|
|
38
759
|
|
|
760
|
+
###### `options`<sup>Required</sup> <a name="options" id="aws-cdk-github-oidc.GithubActionsRole.fromLookup.parameter.options"></a>
|
|
761
|
+
|
|
762
|
+
- *Type:* aws-cdk-lib.aws_iam.RoleLookupOptions
|
|
39
763
|
|
|
40
|
-
|
|
764
|
+
---
|
|
41
765
|
|
|
42
|
-
##### `
|
|
766
|
+
##### `fromRoleArn` <a name="fromRoleArn" id="aws-cdk-github-oidc.GithubActionsRole.fromRoleArn"></a>
|
|
43
767
|
|
|
44
768
|
```typescript
|
|
45
|
-
import {
|
|
769
|
+
import { GithubActionsRole } from 'aws-cdk-github-oidc'
|
|
46
770
|
|
|
47
|
-
|
|
771
|
+
GithubActionsRole.fromRoleArn(scope: Construct, id: string, roleArn: string, options?: FromRoleArnOptions)
|
|
48
772
|
```
|
|
49
773
|
|
|
50
|
-
|
|
774
|
+
Import an external role by ARN.
|
|
51
775
|
|
|
52
|
-
|
|
776
|
+
If the imported Role ARN is a Token (such as a
|
|
777
|
+
`CfnParameter.valueAsString` or a `Fn.importValue()`) *and* the referenced
|
|
778
|
+
role has a `path` (like `arn:...:role/AdminRoles/Alice`), the
|
|
779
|
+
`roleName` property will not resolve to the correct value. Instead it
|
|
780
|
+
will resolve to the first path component. We unfortunately cannot express
|
|
781
|
+
the correct calculation of the full path name as a CloudFormation
|
|
782
|
+
expression. In this scenario the Role ARN should be supplied without the
|
|
783
|
+
`path` in order to resolve the correct role resource.
|
|
53
784
|
|
|
54
|
-
|
|
785
|
+
###### `scope`<sup>Required</sup> <a name="scope" id="aws-cdk-github-oidc.GithubActionsRole.fromRoleArn.parameter.scope"></a>
|
|
786
|
+
|
|
787
|
+
- *Type:* constructs.Construct
|
|
788
|
+
|
|
789
|
+
construct scope.
|
|
55
790
|
|
|
56
791
|
---
|
|
57
792
|
|
|
58
|
-
###### `id`<sup>Required</sup> <a name="aws-cdk-github-oidc.
|
|
793
|
+
###### `id`<sup>Required</sup> <a name="id" id="aws-cdk-github-oidc.GithubActionsRole.fromRoleArn.parameter.id"></a>
|
|
59
794
|
|
|
60
|
-
- *Type:*
|
|
795
|
+
- *Type:* string
|
|
61
796
|
|
|
62
|
-
|
|
797
|
+
construct id.
|
|
63
798
|
|
|
64
799
|
---
|
|
65
800
|
|
|
801
|
+
###### `roleArn`<sup>Required</sup> <a name="roleArn" id="aws-cdk-github-oidc.GithubActionsRole.fromRoleArn.parameter.roleArn"></a>
|
|
66
802
|
|
|
67
|
-
|
|
803
|
+
- *Type:* string
|
|
68
804
|
|
|
69
|
-
|
|
805
|
+
the ARN of the role to import.
|
|
70
806
|
|
|
71
|
-
|
|
807
|
+
---
|
|
808
|
+
|
|
809
|
+
###### `options`<sup>Optional</sup> <a name="options" id="aws-cdk-github-oidc.GithubActionsRole.fromRoleArn.parameter.options"></a>
|
|
810
|
+
|
|
811
|
+
- *Type:* aws-cdk-lib.aws_iam.FromRoleArnOptions
|
|
812
|
+
|
|
813
|
+
allow customizing the behavior of the returned role.
|
|
72
814
|
|
|
73
815
|
---
|
|
74
816
|
|
|
75
|
-
|
|
817
|
+
##### `fromRoleName` <a name="fromRoleName" id="aws-cdk-github-oidc.GithubActionsRole.fromRoleName"></a>
|
|
76
818
|
|
|
77
|
-
|
|
819
|
+
```typescript
|
|
820
|
+
import { GithubActionsRole } from 'aws-cdk-github-oidc'
|
|
78
821
|
|
|
79
|
-
|
|
80
|
-
|
|
822
|
+
GithubActionsRole.fromRoleName(scope: Construct, id: string, roleName: string, options?: FromRoleNameOptions)
|
|
823
|
+
```
|
|
824
|
+
|
|
825
|
+
Import an external role by name.
|
|
826
|
+
|
|
827
|
+
The imported role is assumed to exist in the same account as the account
|
|
828
|
+
the scope's containing Stack is being deployed to.
|
|
829
|
+
|
|
830
|
+
###### `scope`<sup>Required</sup> <a name="scope" id="aws-cdk-github-oidc.GithubActionsRole.fromRoleName.parameter.scope"></a>
|
|
831
|
+
|
|
832
|
+
- *Type:* constructs.Construct
|
|
833
|
+
|
|
834
|
+
construct scope.
|
|
835
|
+
|
|
836
|
+
---
|
|
837
|
+
|
|
838
|
+
###### `id`<sup>Required</sup> <a name="id" id="aws-cdk-github-oidc.GithubActionsRole.fromRoleName.parameter.id"></a>
|
|
839
|
+
|
|
840
|
+
- *Type:* string
|
|
841
|
+
|
|
842
|
+
construct id.
|
|
843
|
+
|
|
844
|
+
---
|
|
845
|
+
|
|
846
|
+
###### `roleName`<sup>Required</sup> <a name="roleName" id="aws-cdk-github-oidc.GithubActionsRole.fromRoleName.parameter.roleName"></a>
|
|
847
|
+
|
|
848
|
+
- *Type:* string
|
|
849
|
+
|
|
850
|
+
the name of the role to import.
|
|
851
|
+
|
|
852
|
+
---
|
|
853
|
+
|
|
854
|
+
###### `options`<sup>Optional</sup> <a name="options" id="aws-cdk-github-oidc.GithubActionsRole.fromRoleName.parameter.options"></a>
|
|
855
|
+
|
|
856
|
+
- *Type:* aws-cdk-lib.aws_iam.FromRoleNameOptions
|
|
857
|
+
|
|
858
|
+
allow customizing the behavior of the returned role.
|
|
859
|
+
|
|
860
|
+
---
|
|
81
861
|
|
|
82
|
-
|
|
862
|
+
##### `isRole` <a name="isRole" id="aws-cdk-github-oidc.GithubActionsRole.isRole"></a>
|
|
83
863
|
|
|
84
864
|
```typescript
|
|
85
865
|
import { GithubActionsRole } from 'aws-cdk-github-oidc'
|
|
86
866
|
|
|
87
|
-
|
|
867
|
+
GithubActionsRole.isRole(x: any)
|
|
868
|
+
```
|
|
869
|
+
|
|
870
|
+
Return whether the given object is a Role.
|
|
871
|
+
|
|
872
|
+
###### `x`<sup>Required</sup> <a name="x" id="aws-cdk-github-oidc.GithubActionsRole.isRole.parameter.x"></a>
|
|
873
|
+
|
|
874
|
+
- *Type:* any
|
|
875
|
+
|
|
876
|
+
---
|
|
877
|
+
|
|
878
|
+
#### Properties <a name="Properties" id="Properties"></a>
|
|
879
|
+
|
|
880
|
+
| **Name** | **Type** | **Description** |
|
|
881
|
+
| --- | --- | --- |
|
|
882
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
|
|
883
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
|
|
884
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
|
|
885
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.property.assumeRoleAction">assumeRoleAction</a></code> | <code>string</code> | When this Principal is used in an AssumeRole policy, the action to use. |
|
|
886
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.property.grantPrincipal">grantPrincipal</a></code> | <code>aws-cdk-lib.aws_iam.IPrincipal</code> | The principal to grant permissions to. |
|
|
887
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.property.grants">grants</a></code> | <code>aws-cdk-lib.aws_iam.RoleGrants</code> | Collection of grant methods for a Role. |
|
|
888
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.property.policyFragment">policyFragment</a></code> | <code>aws-cdk-lib.aws_iam.PrincipalPolicyFragment</code> | Returns the role. |
|
|
889
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.property.roleArn">roleArn</a></code> | <code>string</code> | Returns the ARN of this role. |
|
|
890
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.property.roleId">roleId</a></code> | <code>string</code> | Returns the stable and unique string identifying the role. |
|
|
891
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.property.roleName">roleName</a></code> | <code>string</code> | Returns the name of the role. |
|
|
892
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.property.roleRef">roleRef</a></code> | <code>aws-cdk-lib.interfaces.aws_iam.RoleReference</code> | A reference to a Role resource. |
|
|
893
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.property.assumeRolePolicy">assumeRolePolicy</a></code> | <code>aws-cdk-lib.aws_iam.PolicyDocument</code> | The assume role policy document associated with this role. |
|
|
894
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.property.permissionsBoundary">permissionsBoundary</a></code> | <code>aws-cdk-lib.aws_iam.IManagedPolicy</code> | Returns the permissions boundary attached to this role. |
|
|
895
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.property.principalAccount">principalAccount</a></code> | <code>string</code> | The AWS account ID of this principal. |
|
|
896
|
+
|
|
897
|
+
---
|
|
898
|
+
|
|
899
|
+
##### `node`<sup>Required</sup> <a name="node" id="aws-cdk-github-oidc.GithubActionsRole.property.node"></a>
|
|
900
|
+
|
|
901
|
+
```typescript
|
|
902
|
+
public readonly node: Node;
|
|
903
|
+
```
|
|
904
|
+
|
|
905
|
+
- *Type:* constructs.Node
|
|
906
|
+
|
|
907
|
+
The tree node.
|
|
908
|
+
|
|
909
|
+
---
|
|
910
|
+
|
|
911
|
+
##### `env`<sup>Required</sup> <a name="env" id="aws-cdk-github-oidc.GithubActionsRole.property.env"></a>
|
|
912
|
+
|
|
913
|
+
```typescript
|
|
914
|
+
public readonly env: ResourceEnvironment;
|
|
915
|
+
```
|
|
916
|
+
|
|
917
|
+
- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment
|
|
918
|
+
|
|
919
|
+
The environment this resource belongs to.
|
|
920
|
+
|
|
921
|
+
For resources that are created and managed in a Stack (those created by
|
|
922
|
+
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
|
|
923
|
+
is always the same as the environment of the stack they belong to.
|
|
924
|
+
|
|
925
|
+
For referenced resources (those obtained from referencing methods like
|
|
926
|
+
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
|
|
927
|
+
different than the stack they were imported into.
|
|
928
|
+
|
|
929
|
+
---
|
|
930
|
+
|
|
931
|
+
##### `stack`<sup>Required</sup> <a name="stack" id="aws-cdk-github-oidc.GithubActionsRole.property.stack"></a>
|
|
932
|
+
|
|
933
|
+
```typescript
|
|
934
|
+
public readonly stack: Stack;
|
|
935
|
+
```
|
|
936
|
+
|
|
937
|
+
- *Type:* aws-cdk-lib.Stack
|
|
938
|
+
|
|
939
|
+
The stack in which this resource is defined.
|
|
940
|
+
|
|
941
|
+
---
|
|
942
|
+
|
|
943
|
+
##### `assumeRoleAction`<sup>Required</sup> <a name="assumeRoleAction" id="aws-cdk-github-oidc.GithubActionsRole.property.assumeRoleAction"></a>
|
|
944
|
+
|
|
945
|
+
```typescript
|
|
946
|
+
public readonly assumeRoleAction: string;
|
|
947
|
+
```
|
|
948
|
+
|
|
949
|
+
- *Type:* string
|
|
950
|
+
|
|
951
|
+
When this Principal is used in an AssumeRole policy, the action to use.
|
|
952
|
+
|
|
953
|
+
---
|
|
954
|
+
|
|
955
|
+
##### `grantPrincipal`<sup>Required</sup> <a name="grantPrincipal" id="aws-cdk-github-oidc.GithubActionsRole.property.grantPrincipal"></a>
|
|
956
|
+
|
|
957
|
+
```typescript
|
|
958
|
+
public readonly grantPrincipal: IPrincipal;
|
|
959
|
+
```
|
|
960
|
+
|
|
961
|
+
- *Type:* aws-cdk-lib.aws_iam.IPrincipal
|
|
962
|
+
|
|
963
|
+
The principal to grant permissions to.
|
|
964
|
+
|
|
965
|
+
---
|
|
966
|
+
|
|
967
|
+
##### `grants`<sup>Required</sup> <a name="grants" id="aws-cdk-github-oidc.GithubActionsRole.property.grants"></a>
|
|
968
|
+
|
|
969
|
+
```typescript
|
|
970
|
+
public readonly grants: RoleGrants;
|
|
971
|
+
```
|
|
972
|
+
|
|
973
|
+
- *Type:* aws-cdk-lib.aws_iam.RoleGrants
|
|
974
|
+
|
|
975
|
+
Collection of grant methods for a Role.
|
|
976
|
+
|
|
977
|
+
---
|
|
978
|
+
|
|
979
|
+
##### `policyFragment`<sup>Required</sup> <a name="policyFragment" id="aws-cdk-github-oidc.GithubActionsRole.property.policyFragment"></a>
|
|
980
|
+
|
|
981
|
+
```typescript
|
|
982
|
+
public readonly policyFragment: PrincipalPolicyFragment;
|
|
983
|
+
```
|
|
984
|
+
|
|
985
|
+
- *Type:* aws-cdk-lib.aws_iam.PrincipalPolicyFragment
|
|
986
|
+
|
|
987
|
+
Returns the role.
|
|
988
|
+
|
|
989
|
+
---
|
|
990
|
+
|
|
991
|
+
##### `roleArn`<sup>Required</sup> <a name="roleArn" id="aws-cdk-github-oidc.GithubActionsRole.property.roleArn"></a>
|
|
992
|
+
|
|
993
|
+
```typescript
|
|
994
|
+
public readonly roleArn: string;
|
|
995
|
+
```
|
|
996
|
+
|
|
997
|
+
- *Type:* string
|
|
998
|
+
|
|
999
|
+
Returns the ARN of this role.
|
|
1000
|
+
|
|
1001
|
+
---
|
|
1002
|
+
|
|
1003
|
+
##### `roleId`<sup>Required</sup> <a name="roleId" id="aws-cdk-github-oidc.GithubActionsRole.property.roleId"></a>
|
|
1004
|
+
|
|
1005
|
+
```typescript
|
|
1006
|
+
public readonly roleId: string;
|
|
1007
|
+
```
|
|
1008
|
+
|
|
1009
|
+
- *Type:* string
|
|
1010
|
+
|
|
1011
|
+
Returns the stable and unique string identifying the role.
|
|
1012
|
+
|
|
1013
|
+
For example,
|
|
1014
|
+
AIDAJQABLZS4A3QDU576Q.
|
|
1015
|
+
|
|
1016
|
+
---
|
|
1017
|
+
|
|
1018
|
+
##### `roleName`<sup>Required</sup> <a name="roleName" id="aws-cdk-github-oidc.GithubActionsRole.property.roleName"></a>
|
|
1019
|
+
|
|
1020
|
+
```typescript
|
|
1021
|
+
public readonly roleName: string;
|
|
1022
|
+
```
|
|
1023
|
+
|
|
1024
|
+
- *Type:* string
|
|
1025
|
+
|
|
1026
|
+
Returns the name of the role.
|
|
1027
|
+
|
|
1028
|
+
---
|
|
1029
|
+
|
|
1030
|
+
##### `roleRef`<sup>Required</sup> <a name="roleRef" id="aws-cdk-github-oidc.GithubActionsRole.property.roleRef"></a>
|
|
1031
|
+
|
|
1032
|
+
```typescript
|
|
1033
|
+
public readonly roleRef: RoleReference;
|
|
1034
|
+
```
|
|
1035
|
+
|
|
1036
|
+
- *Type:* aws-cdk-lib.interfaces.aws_iam.RoleReference
|
|
1037
|
+
|
|
1038
|
+
A reference to a Role resource.
|
|
1039
|
+
|
|
1040
|
+
---
|
|
1041
|
+
|
|
1042
|
+
##### `assumeRolePolicy`<sup>Optional</sup> <a name="assumeRolePolicy" id="aws-cdk-github-oidc.GithubActionsRole.property.assumeRolePolicy"></a>
|
|
1043
|
+
|
|
1044
|
+
```typescript
|
|
1045
|
+
public readonly assumeRolePolicy: PolicyDocument;
|
|
1046
|
+
```
|
|
1047
|
+
|
|
1048
|
+
- *Type:* aws-cdk-lib.aws_iam.PolicyDocument
|
|
1049
|
+
|
|
1050
|
+
The assume role policy document associated with this role.
|
|
1051
|
+
|
|
1052
|
+
---
|
|
1053
|
+
|
|
1054
|
+
##### `permissionsBoundary`<sup>Optional</sup> <a name="permissionsBoundary" id="aws-cdk-github-oidc.GithubActionsRole.property.permissionsBoundary"></a>
|
|
1055
|
+
|
|
1056
|
+
```typescript
|
|
1057
|
+
public readonly permissionsBoundary: IManagedPolicy;
|
|
1058
|
+
```
|
|
1059
|
+
|
|
1060
|
+
- *Type:* aws-cdk-lib.aws_iam.IManagedPolicy
|
|
1061
|
+
|
|
1062
|
+
Returns the permissions boundary attached to this role.
|
|
1063
|
+
|
|
1064
|
+
---
|
|
1065
|
+
|
|
1066
|
+
##### `principalAccount`<sup>Optional</sup> <a name="principalAccount" id="aws-cdk-github-oidc.GithubActionsRole.property.principalAccount"></a>
|
|
1067
|
+
|
|
1068
|
+
```typescript
|
|
1069
|
+
public readonly principalAccount: string;
|
|
88
1070
|
```
|
|
89
1071
|
|
|
90
|
-
|
|
1072
|
+
- *Type:* string
|
|
91
1073
|
|
|
92
|
-
|
|
1074
|
+
The AWS account ID of this principal.
|
|
1075
|
+
|
|
1076
|
+
Can be undefined when the account is not known
|
|
1077
|
+
(for example, for service principals).
|
|
1078
|
+
Can be a Token - in that case,
|
|
1079
|
+
it's assumed to be AWS::AccountId.
|
|
1080
|
+
|
|
1081
|
+
---
|
|
1082
|
+
|
|
1083
|
+
#### Constants <a name="Constants" id="Constants"></a>
|
|
1084
|
+
|
|
1085
|
+
| **Name** | **Type** | **Description** |
|
|
1086
|
+
| --- | --- | --- |
|
|
1087
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRole.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |
|
|
93
1088
|
|
|
94
1089
|
---
|
|
95
1090
|
|
|
96
|
-
##### `
|
|
1091
|
+
##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="aws-cdk-github-oidc.GithubActionsRole.property.PROPERTY_INJECTION_ID"></a>
|
|
1092
|
+
|
|
1093
|
+
```typescript
|
|
1094
|
+
public readonly PROPERTY_INJECTION_ID: string;
|
|
1095
|
+
```
|
|
1096
|
+
|
|
1097
|
+
- *Type:* string
|
|
97
1098
|
|
|
98
|
-
|
|
1099
|
+
Uniquely identifies this class.
|
|
99
1100
|
|
|
100
1101
|
---
|
|
101
1102
|
|
|
102
|
-
|
|
1103
|
+
## Structs <a name="Structs" id="Structs"></a>
|
|
1104
|
+
|
|
1105
|
+
### GithubActionsIdentityProviderProps <a name="GithubActionsIdentityProviderProps" id="aws-cdk-github-oidc.GithubActionsIdentityProviderProps"></a>
|
|
1106
|
+
|
|
1107
|
+
#### Initializer <a name="Initializer" id="aws-cdk-github-oidc.GithubActionsIdentityProviderProps.Initializer"></a>
|
|
1108
|
+
|
|
1109
|
+
```typescript
|
|
1110
|
+
import { GithubActionsIdentityProviderProps } from 'aws-cdk-github-oidc'
|
|
1111
|
+
|
|
1112
|
+
const githubActionsIdentityProviderProps: GithubActionsIdentityProviderProps = { ... }
|
|
1113
|
+
```
|
|
1114
|
+
|
|
1115
|
+
#### Properties <a name="Properties" id="Properties"></a>
|
|
103
1116
|
|
|
104
|
-
|
|
1117
|
+
| **Name** | **Type** | **Description** |
|
|
1118
|
+
| --- | --- | --- |
|
|
1119
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsIdentityProviderProps.property.removalPolicy">removalPolicy</a></code> | <code>aws-cdk-lib.RemovalPolicy</code> | The removal policy for the provider. |
|
|
105
1120
|
|
|
106
1121
|
---
|
|
107
1122
|
|
|
1123
|
+
##### `removalPolicy`<sup>Optional</sup> <a name="removalPolicy" id="aws-cdk-github-oidc.GithubActionsIdentityProviderProps.property.removalPolicy"></a>
|
|
108
1124
|
|
|
1125
|
+
```typescript
|
|
1126
|
+
public readonly removalPolicy: RemovalPolicy;
|
|
1127
|
+
```
|
|
109
1128
|
|
|
1129
|
+
- *Type:* aws-cdk-lib.RemovalPolicy
|
|
1130
|
+
- *Default:* cdk.RemovalPolicy.DESTROY
|
|
110
1131
|
|
|
1132
|
+
The removal policy for the provider.
|
|
111
1133
|
|
|
112
|
-
|
|
1134
|
+
---
|
|
113
1135
|
|
|
114
|
-
### GithubActionsRoleProps <a name="aws-cdk-github-oidc.GithubActionsRoleProps"></a>
|
|
1136
|
+
### GithubActionsRoleProps <a name="GithubActionsRoleProps" id="aws-cdk-github-oidc.GithubActionsRoleProps"></a>
|
|
115
1137
|
|
|
116
1138
|
Props that define the IAM Role that can be assumed by Github Actions workflow via Github OpenID Connect Identity Provider.
|
|
117
1139
|
|
|
118
1140
|
Besides `GithubConfiguration`, you may pass in any `iam.RoleProps` except `assumedBy`
|
|
119
1141
|
which will be defined by this construct (CDK will fail if you do).
|
|
120
1142
|
|
|
121
|
-
|
|
1143
|
+
*Example*
|
|
1144
|
+
|
|
1145
|
+
```typescript
|
|
1146
|
+
{
|
|
1147
|
+
provider: GithubActionsIdentityProvider.fromAccount(scope, "GithubProvider"),
|
|
1148
|
+
owner: 'octo-org',
|
|
1149
|
+
repo: 'octo-repo',
|
|
1150
|
+
filter: 'ref:refs/tags/v*',
|
|
1151
|
+
roleName: 'MyDeployRole',
|
|
1152
|
+
}
|
|
1153
|
+
```
|
|
1154
|
+
|
|
1155
|
+
|
|
1156
|
+
#### Initializer <a name="Initializer" id="aws-cdk-github-oidc.GithubActionsRoleProps.Initializer"></a>
|
|
122
1157
|
|
|
123
1158
|
```typescript
|
|
124
1159
|
import { GithubActionsRoleProps } from 'aws-cdk-github-oidc'
|
|
@@ -126,25 +1161,51 @@ import { GithubActionsRoleProps } from 'aws-cdk-github-oidc'
|
|
|
126
1161
|
const githubActionsRoleProps: GithubActionsRoleProps = { ... }
|
|
127
1162
|
```
|
|
128
1163
|
|
|
129
|
-
|
|
1164
|
+
#### Properties <a name="Properties" id="Properties"></a>
|
|
1165
|
+
|
|
1166
|
+
| **Name** | **Type** | **Description** |
|
|
1167
|
+
| --- | --- | --- |
|
|
1168
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRoleProps.property.owner">owner</a></code> | <code>string</code> | Repository owner (organization or username). |
|
|
1169
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRoleProps.property.provider">provider</a></code> | <code><a href="#aws-cdk-github-oidc.IGithubActionsIdentityProvider">IGithubActionsIdentityProvider</a></code> | Reference to Github OpenID Connect Provider configured in AWS IAM. |
|
|
1170
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRoleProps.property.repo">repo</a></code> | <code>string</code> | Repository name (slug) without the owner. |
|
|
1171
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRoleProps.property.filter">filter</a></code> | <code>string</code> | Subject condition filter, appended after `repo:${owner}/${repo}:` string in IAM Role trust relationship. |
|
|
1172
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRoleProps.property.description">description</a></code> | <code>string</code> | A description of the role. |
|
|
1173
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRoleProps.property.externalIds">externalIds</a></code> | <code>string[]</code> | List of IDs that the role assumer needs to provide one of when assuming this role. |
|
|
1174
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRoleProps.property.inlinePolicies">inlinePolicies</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_iam.PolicyDocument}</code> | A list of named policies to inline into this role. |
|
|
1175
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRoleProps.property.managedPolicies">managedPolicies</a></code> | <code>aws-cdk-lib.aws_iam.IManagedPolicy[]</code> | A list of managed policies associated with this role. |
|
|
1176
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRoleProps.property.maxSessionDuration">maxSessionDuration</a></code> | <code>aws-cdk-lib.Duration</code> | The maximum session duration that you want to set for the specified role. |
|
|
1177
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRoleProps.property.path">path</a></code> | <code>string</code> | The path associated with this role. |
|
|
1178
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRoleProps.property.permissionsBoundary">permissionsBoundary</a></code> | <code>aws-cdk-lib.aws_iam.IManagedPolicy</code> | AWS supports permissions boundaries for IAM entities (users or roles). |
|
|
1179
|
+
| <code><a href="#aws-cdk-github-oidc.GithubActionsRoleProps.property.roleName">roleName</a></code> | <code>string</code> | A name for the IAM role. |
|
|
1180
|
+
|
|
1181
|
+
---
|
|
1182
|
+
|
|
1183
|
+
##### `owner`<sup>Required</sup> <a name="owner" id="aws-cdk-github-oidc.GithubActionsRoleProps.property.owner"></a>
|
|
130
1184
|
|
|
131
1185
|
```typescript
|
|
132
1186
|
public readonly owner: string;
|
|
133
1187
|
```
|
|
134
1188
|
|
|
135
|
-
- *Type:*
|
|
1189
|
+
- *Type:* string
|
|
136
1190
|
|
|
137
1191
|
Repository owner (organization or username).
|
|
138
1192
|
|
|
139
1193
|
---
|
|
140
1194
|
|
|
141
|
-
|
|
1195
|
+
*Example*
|
|
1196
|
+
|
|
1197
|
+
```typescript
|
|
1198
|
+
'octo-org'
|
|
1199
|
+
```
|
|
1200
|
+
|
|
1201
|
+
|
|
1202
|
+
##### `provider`<sup>Required</sup> <a name="provider" id="aws-cdk-github-oidc.GithubActionsRoleProps.property.provider"></a>
|
|
142
1203
|
|
|
143
1204
|
```typescript
|
|
144
1205
|
public readonly provider: IGithubActionsIdentityProvider;
|
|
145
1206
|
```
|
|
146
1207
|
|
|
147
|
-
- *Type:*
|
|
1208
|
+
- *Type:* <a href="#aws-cdk-github-oidc.IGithubActionsIdentityProvider">IGithubActionsIdentityProvider</a>
|
|
148
1209
|
|
|
149
1210
|
Reference to Github OpenID Connect Provider configured in AWS IAM.
|
|
150
1211
|
|
|
@@ -154,42 +1215,57 @@ There can be only one (per AWS Account).
|
|
|
154
1215
|
|
|
155
1216
|
---
|
|
156
1217
|
|
|
157
|
-
##### `repo`<sup>Required</sup> <a name="aws-cdk-github-oidc.GithubActionsRoleProps.property.repo"></a>
|
|
1218
|
+
##### `repo`<sup>Required</sup> <a name="repo" id="aws-cdk-github-oidc.GithubActionsRoleProps.property.repo"></a>
|
|
158
1219
|
|
|
159
1220
|
```typescript
|
|
160
1221
|
public readonly repo: string;
|
|
161
1222
|
```
|
|
162
1223
|
|
|
163
|
-
- *Type:*
|
|
1224
|
+
- *Type:* string
|
|
164
1225
|
|
|
165
1226
|
Repository name (slug) without the owner.
|
|
166
1227
|
|
|
167
1228
|
---
|
|
168
1229
|
|
|
169
|
-
|
|
1230
|
+
*Example*
|
|
170
1231
|
|
|
171
1232
|
```typescript
|
|
172
|
-
|
|
1233
|
+
'octo-repo'
|
|
173
1234
|
```
|
|
174
1235
|
|
|
175
|
-
- *Type:* `string`
|
|
176
|
-
- *Default:* '*'
|
|
177
1236
|
|
|
178
|
-
|
|
1237
|
+
##### `filter`<sup>Optional</sup> <a name="filter" id="aws-cdk-github-oidc.GithubActionsRoleProps.property.filter"></a>
|
|
1238
|
+
|
|
1239
|
+
```typescript
|
|
1240
|
+
public readonly filter: string;
|
|
1241
|
+
```
|
|
1242
|
+
|
|
1243
|
+
- *Type:* string
|
|
1244
|
+
- *Default:* '*' You may use this value to only allow Github to assume the role on specific branches, tags, environments, pull requests etc.
|
|
179
1245
|
|
|
180
1246
|
Subject condition filter, appended after `repo:${owner}/${repo}:` string in IAM Role trust relationship.
|
|
181
1247
|
|
|
182
|
-
> https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#examples
|
|
1248
|
+
> [https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#examples](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#examples)
|
|
183
1249
|
|
|
184
1250
|
---
|
|
185
1251
|
|
|
186
|
-
|
|
1252
|
+
*Example*
|
|
1253
|
+
|
|
1254
|
+
```typescript
|
|
1255
|
+
'ref:refs/tags/v*'
|
|
1256
|
+
'ref:refs/heads/demo-branch'
|
|
1257
|
+
'pull_request'
|
|
1258
|
+
'environment:Production'
|
|
1259
|
+
```
|
|
1260
|
+
|
|
1261
|
+
|
|
1262
|
+
##### `description`<sup>Optional</sup> <a name="description" id="aws-cdk-github-oidc.GithubActionsRoleProps.property.description"></a>
|
|
187
1263
|
|
|
188
1264
|
```typescript
|
|
189
1265
|
public readonly description: string;
|
|
190
1266
|
```
|
|
191
1267
|
|
|
192
|
-
- *Type:*
|
|
1268
|
+
- *Type:* string
|
|
193
1269
|
- *Default:* No description.
|
|
194
1270
|
|
|
195
1271
|
A description of the role.
|
|
@@ -198,13 +1274,13 @@ It can be up to 1000 characters long.
|
|
|
198
1274
|
|
|
199
1275
|
---
|
|
200
1276
|
|
|
201
|
-
##### `externalIds`<sup>Optional</sup> <a name="aws-cdk-github-oidc.GithubActionsRoleProps.property.externalIds"></a>
|
|
1277
|
+
##### `externalIds`<sup>Optional</sup> <a name="externalIds" id="aws-cdk-github-oidc.GithubActionsRoleProps.property.externalIds"></a>
|
|
202
1278
|
|
|
203
1279
|
```typescript
|
|
204
1280
|
public readonly externalIds: string[];
|
|
205
1281
|
```
|
|
206
1282
|
|
|
207
|
-
- *Type:*
|
|
1283
|
+
- *Type:* string[]
|
|
208
1284
|
- *Default:* No external ID required
|
|
209
1285
|
|
|
210
1286
|
List of IDs that the role assumer needs to provide one of when assuming this role.
|
|
@@ -214,13 +1290,13 @@ AssumeRole operation will fail.
|
|
|
214
1290
|
|
|
215
1291
|
---
|
|
216
1292
|
|
|
217
|
-
##### `inlinePolicies`<sup>Optional</sup> <a name="aws-cdk-github-oidc.GithubActionsRoleProps.property.inlinePolicies"></a>
|
|
1293
|
+
##### `inlinePolicies`<sup>Optional</sup> <a name="inlinePolicies" id="aws-cdk-github-oidc.GithubActionsRoleProps.property.inlinePolicies"></a>
|
|
218
1294
|
|
|
219
1295
|
```typescript
|
|
220
1296
|
public readonly inlinePolicies: {[ key: string ]: PolicyDocument};
|
|
221
1297
|
```
|
|
222
1298
|
|
|
223
|
-
- *Type:* {[ key: string ]:
|
|
1299
|
+
- *Type:* {[ key: string ]: aws-cdk-lib.aws_iam.PolicyDocument}
|
|
224
1300
|
- *Default:* No policy is inlined in the Role resource.
|
|
225
1301
|
|
|
226
1302
|
A list of named policies to inline into this role.
|
|
@@ -232,13 +1308,13 @@ dependencies that could otherwise be introduced).
|
|
|
232
1308
|
|
|
233
1309
|
---
|
|
234
1310
|
|
|
235
|
-
##### `managedPolicies`<sup>Optional</sup> <a name="aws-cdk-github-oidc.GithubActionsRoleProps.property.managedPolicies"></a>
|
|
1311
|
+
##### `managedPolicies`<sup>Optional</sup> <a name="managedPolicies" id="aws-cdk-github-oidc.GithubActionsRoleProps.property.managedPolicies"></a>
|
|
236
1312
|
|
|
237
1313
|
```typescript
|
|
238
1314
|
public readonly managedPolicies: IManagedPolicy[];
|
|
239
1315
|
```
|
|
240
1316
|
|
|
241
|
-
- *Type:*
|
|
1317
|
+
- *Type:* aws-cdk-lib.aws_iam.IManagedPolicy[]
|
|
242
1318
|
- *Default:* No managed policies.
|
|
243
1319
|
|
|
244
1320
|
A list of managed policies associated with this role.
|
|
@@ -248,13 +1324,13 @@ You can add managed policies later using
|
|
|
248
1324
|
|
|
249
1325
|
---
|
|
250
1326
|
|
|
251
|
-
##### `maxSessionDuration`<sup>Optional</sup> <a name="aws-cdk-github-oidc.GithubActionsRoleProps.property.maxSessionDuration"></a>
|
|
1327
|
+
##### `maxSessionDuration`<sup>Optional</sup> <a name="maxSessionDuration" id="aws-cdk-github-oidc.GithubActionsRoleProps.property.maxSessionDuration"></a>
|
|
252
1328
|
|
|
253
1329
|
```typescript
|
|
254
1330
|
public readonly maxSessionDuration: Duration;
|
|
255
1331
|
```
|
|
256
1332
|
|
|
257
|
-
- *Type:*
|
|
1333
|
+
- *Type:* aws-cdk-lib.Duration
|
|
258
1334
|
- *Default:* Duration.hours(1)
|
|
259
1335
|
|
|
260
1336
|
The maximum session duration that you want to set for the specified role.
|
|
@@ -276,13 +1352,13 @@ but does not apply when you use those operations to create a console URL.
|
|
|
276
1352
|
|
|
277
1353
|
---
|
|
278
1354
|
|
|
279
|
-
##### `path`<sup>Optional</sup> <a name="aws-cdk-github-oidc.GithubActionsRoleProps.property.path"></a>
|
|
1355
|
+
##### `path`<sup>Optional</sup> <a name="path" id="aws-cdk-github-oidc.GithubActionsRoleProps.property.path"></a>
|
|
280
1356
|
|
|
281
1357
|
```typescript
|
|
282
1358
|
public readonly path: string;
|
|
283
1359
|
```
|
|
284
1360
|
|
|
285
|
-
- *Type:*
|
|
1361
|
+
- *Type:* string
|
|
286
1362
|
- *Default:* /
|
|
287
1363
|
|
|
288
1364
|
The path associated with this role.
|
|
@@ -292,13 +1368,13 @@ Friendly Names and Paths in IAM User Guide.
|
|
|
292
1368
|
|
|
293
1369
|
---
|
|
294
1370
|
|
|
295
|
-
##### `permissionsBoundary`<sup>Optional</sup> <a name="aws-cdk-github-oidc.GithubActionsRoleProps.property.permissionsBoundary"></a>
|
|
1371
|
+
##### `permissionsBoundary`<sup>Optional</sup> <a name="permissionsBoundary" id="aws-cdk-github-oidc.GithubActionsRoleProps.property.permissionsBoundary"></a>
|
|
296
1372
|
|
|
297
1373
|
```typescript
|
|
298
1374
|
public readonly permissionsBoundary: IManagedPolicy;
|
|
299
1375
|
```
|
|
300
1376
|
|
|
301
|
-
- *Type:*
|
|
1377
|
+
- *Type:* aws-cdk-lib.aws_iam.IManagedPolicy
|
|
302
1378
|
- *Default:* No permissions boundary.
|
|
303
1379
|
|
|
304
1380
|
AWS supports permissions boundaries for IAM entities (users or roles).
|
|
@@ -313,15 +1389,14 @@ permissions boundaries.
|
|
|
313
1389
|
|
|
314
1390
|
---
|
|
315
1391
|
|
|
316
|
-
##### `roleName`<sup>Optional</sup> <a name="aws-cdk-github-oidc.GithubActionsRoleProps.property.roleName"></a>
|
|
1392
|
+
##### `roleName`<sup>Optional</sup> <a name="roleName" id="aws-cdk-github-oidc.GithubActionsRoleProps.property.roleName"></a>
|
|
317
1393
|
|
|
318
1394
|
```typescript
|
|
319
1395
|
public readonly roleName: string;
|
|
320
1396
|
```
|
|
321
1397
|
|
|
322
|
-
- *Type:*
|
|
323
|
-
- *Default:* AWS CloudFormation generates a unique physical ID and uses that ID
|
|
324
|
-
for the role name.
|
|
1398
|
+
- *Type:* string
|
|
1399
|
+
- *Default:* AWS CloudFormation generates a unique physical ID and uses that ID for the role name.
|
|
325
1400
|
|
|
326
1401
|
A name for the IAM role.
|
|
327
1402
|
|
|
@@ -338,11 +1413,11 @@ Acknowledging IAM Resources in AWS CloudFormation Templates.
|
|
|
338
1413
|
|
|
339
1414
|
---
|
|
340
1415
|
|
|
341
|
-
### GithubConfiguration <a name="aws-cdk-github-oidc.GithubConfiguration"></a>
|
|
1416
|
+
### GithubConfiguration <a name="GithubConfiguration" id="aws-cdk-github-oidc.GithubConfiguration"></a>
|
|
342
1417
|
|
|
343
1418
|
Github related configuration that forms the trust policy for this IAM Role.
|
|
344
1419
|
|
|
345
|
-
#### Initializer <a name="
|
|
1420
|
+
#### Initializer <a name="Initializer" id="aws-cdk-github-oidc.GithubConfiguration.Initializer"></a>
|
|
346
1421
|
|
|
347
1422
|
```typescript
|
|
348
1423
|
import { GithubConfiguration } from 'aws-cdk-github-oidc'
|
|
@@ -350,25 +1425,43 @@ import { GithubConfiguration } from 'aws-cdk-github-oidc'
|
|
|
350
1425
|
const githubConfiguration: GithubConfiguration = { ... }
|
|
351
1426
|
```
|
|
352
1427
|
|
|
353
|
-
|
|
1428
|
+
#### Properties <a name="Properties" id="Properties"></a>
|
|
1429
|
+
|
|
1430
|
+
| **Name** | **Type** | **Description** |
|
|
1431
|
+
| --- | --- | --- |
|
|
1432
|
+
| <code><a href="#aws-cdk-github-oidc.GithubConfiguration.property.owner">owner</a></code> | <code>string</code> | Repository owner (organization or username). |
|
|
1433
|
+
| <code><a href="#aws-cdk-github-oidc.GithubConfiguration.property.provider">provider</a></code> | <code><a href="#aws-cdk-github-oidc.IGithubActionsIdentityProvider">IGithubActionsIdentityProvider</a></code> | Reference to Github OpenID Connect Provider configured in AWS IAM. |
|
|
1434
|
+
| <code><a href="#aws-cdk-github-oidc.GithubConfiguration.property.repo">repo</a></code> | <code>string</code> | Repository name (slug) without the owner. |
|
|
1435
|
+
| <code><a href="#aws-cdk-github-oidc.GithubConfiguration.property.filter">filter</a></code> | <code>string</code> | Subject condition filter, appended after `repo:${owner}/${repo}:` string in IAM Role trust relationship. |
|
|
1436
|
+
|
|
1437
|
+
---
|
|
1438
|
+
|
|
1439
|
+
##### `owner`<sup>Required</sup> <a name="owner" id="aws-cdk-github-oidc.GithubConfiguration.property.owner"></a>
|
|
354
1440
|
|
|
355
1441
|
```typescript
|
|
356
1442
|
public readonly owner: string;
|
|
357
1443
|
```
|
|
358
1444
|
|
|
359
|
-
- *Type:*
|
|
1445
|
+
- *Type:* string
|
|
360
1446
|
|
|
361
1447
|
Repository owner (organization or username).
|
|
362
1448
|
|
|
363
1449
|
---
|
|
364
1450
|
|
|
365
|
-
|
|
1451
|
+
*Example*
|
|
1452
|
+
|
|
1453
|
+
```typescript
|
|
1454
|
+
'octo-org'
|
|
1455
|
+
```
|
|
1456
|
+
|
|
1457
|
+
|
|
1458
|
+
##### `provider`<sup>Required</sup> <a name="provider" id="aws-cdk-github-oidc.GithubConfiguration.property.provider"></a>
|
|
366
1459
|
|
|
367
1460
|
```typescript
|
|
368
1461
|
public readonly provider: IGithubActionsIdentityProvider;
|
|
369
1462
|
```
|
|
370
1463
|
|
|
371
|
-
- *Type:*
|
|
1464
|
+
- *Type:* <a href="#aws-cdk-github-oidc.IGithubActionsIdentityProvider">IGithubActionsIdentityProvider</a>
|
|
372
1465
|
|
|
373
1466
|
Reference to Github OpenID Connect Provider configured in AWS IAM.
|
|
374
1467
|
|
|
@@ -378,45 +1471,57 @@ There can be only one (per AWS Account).
|
|
|
378
1471
|
|
|
379
1472
|
---
|
|
380
1473
|
|
|
381
|
-
##### `repo`<sup>Required</sup> <a name="aws-cdk-github-oidc.GithubConfiguration.property.repo"></a>
|
|
1474
|
+
##### `repo`<sup>Required</sup> <a name="repo" id="aws-cdk-github-oidc.GithubConfiguration.property.repo"></a>
|
|
382
1475
|
|
|
383
1476
|
```typescript
|
|
384
1477
|
public readonly repo: string;
|
|
385
1478
|
```
|
|
386
1479
|
|
|
387
|
-
- *Type:*
|
|
1480
|
+
- *Type:* string
|
|
388
1481
|
|
|
389
1482
|
Repository name (slug) without the owner.
|
|
390
1483
|
|
|
391
1484
|
---
|
|
392
1485
|
|
|
393
|
-
|
|
1486
|
+
*Example*
|
|
394
1487
|
|
|
395
1488
|
```typescript
|
|
396
|
-
|
|
1489
|
+
'octo-repo'
|
|
397
1490
|
```
|
|
398
1491
|
|
|
399
|
-
- *Type:* `string`
|
|
400
|
-
- *Default:* '*'
|
|
401
1492
|
|
|
402
|
-
|
|
1493
|
+
##### `filter`<sup>Optional</sup> <a name="filter" id="aws-cdk-github-oidc.GithubConfiguration.property.filter"></a>
|
|
1494
|
+
|
|
1495
|
+
```typescript
|
|
1496
|
+
public readonly filter: string;
|
|
1497
|
+
```
|
|
1498
|
+
|
|
1499
|
+
- *Type:* string
|
|
1500
|
+
- *Default:* '*' You may use this value to only allow Github to assume the role on specific branches, tags, environments, pull requests etc.
|
|
403
1501
|
|
|
404
1502
|
Subject condition filter, appended after `repo:${owner}/${repo}:` string in IAM Role trust relationship.
|
|
405
1503
|
|
|
406
|
-
> https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#examples
|
|
1504
|
+
> [https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#examples](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#examples)
|
|
407
1505
|
|
|
408
1506
|
---
|
|
409
1507
|
|
|
410
|
-
|
|
1508
|
+
*Example*
|
|
1509
|
+
|
|
1510
|
+
```typescript
|
|
1511
|
+
'ref:refs/tags/v*'
|
|
1512
|
+
'ref:refs/heads/demo-branch'
|
|
1513
|
+
'pull_request'
|
|
1514
|
+
'environment:Production'
|
|
1515
|
+
```
|
|
411
1516
|
|
|
412
|
-
Properties for defining an IAM Role.
|
|
413
1517
|
|
|
414
|
-
|
|
415
|
-
|
|
1518
|
+
### RoleProps <a name="RoleProps" id="aws-cdk-github-oidc.RoleProps"></a>
|
|
1519
|
+
|
|
1520
|
+
Properties for defining an IAM Role.
|
|
416
1521
|
|
|
417
|
-
|
|
1522
|
+
These are copied fron
|
|
418
1523
|
|
|
419
|
-
#### Initializer <a name="
|
|
1524
|
+
#### Initializer <a name="Initializer" id="aws-cdk-github-oidc.RoleProps.Initializer"></a>
|
|
420
1525
|
|
|
421
1526
|
```typescript
|
|
422
1527
|
import { RoleProps } from 'aws-cdk-github-oidc'
|
|
@@ -424,13 +1529,28 @@ import { RoleProps } from 'aws-cdk-github-oidc'
|
|
|
424
1529
|
const roleProps: RoleProps = { ... }
|
|
425
1530
|
```
|
|
426
1531
|
|
|
427
|
-
|
|
1532
|
+
#### Properties <a name="Properties" id="Properties"></a>
|
|
1533
|
+
|
|
1534
|
+
| **Name** | **Type** | **Description** |
|
|
1535
|
+
| --- | --- | --- |
|
|
1536
|
+
| <code><a href="#aws-cdk-github-oidc.RoleProps.property.description">description</a></code> | <code>string</code> | A description of the role. |
|
|
1537
|
+
| <code><a href="#aws-cdk-github-oidc.RoleProps.property.externalIds">externalIds</a></code> | <code>string[]</code> | List of IDs that the role assumer needs to provide one of when assuming this role. |
|
|
1538
|
+
| <code><a href="#aws-cdk-github-oidc.RoleProps.property.inlinePolicies">inlinePolicies</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_iam.PolicyDocument}</code> | A list of named policies to inline into this role. |
|
|
1539
|
+
| <code><a href="#aws-cdk-github-oidc.RoleProps.property.managedPolicies">managedPolicies</a></code> | <code>aws-cdk-lib.aws_iam.IManagedPolicy[]</code> | A list of managed policies associated with this role. |
|
|
1540
|
+
| <code><a href="#aws-cdk-github-oidc.RoleProps.property.maxSessionDuration">maxSessionDuration</a></code> | <code>aws-cdk-lib.Duration</code> | The maximum session duration that you want to set for the specified role. |
|
|
1541
|
+
| <code><a href="#aws-cdk-github-oidc.RoleProps.property.path">path</a></code> | <code>string</code> | The path associated with this role. |
|
|
1542
|
+
| <code><a href="#aws-cdk-github-oidc.RoleProps.property.permissionsBoundary">permissionsBoundary</a></code> | <code>aws-cdk-lib.aws_iam.IManagedPolicy</code> | AWS supports permissions boundaries for IAM entities (users or roles). |
|
|
1543
|
+
| <code><a href="#aws-cdk-github-oidc.RoleProps.property.roleName">roleName</a></code> | <code>string</code> | A name for the IAM role. |
|
|
1544
|
+
|
|
1545
|
+
---
|
|
1546
|
+
|
|
1547
|
+
##### `description`<sup>Optional</sup> <a name="description" id="aws-cdk-github-oidc.RoleProps.property.description"></a>
|
|
428
1548
|
|
|
429
1549
|
```typescript
|
|
430
1550
|
public readonly description: string;
|
|
431
1551
|
```
|
|
432
1552
|
|
|
433
|
-
- *Type:*
|
|
1553
|
+
- *Type:* string
|
|
434
1554
|
- *Default:* No description.
|
|
435
1555
|
|
|
436
1556
|
A description of the role.
|
|
@@ -439,13 +1559,13 @@ It can be up to 1000 characters long.
|
|
|
439
1559
|
|
|
440
1560
|
---
|
|
441
1561
|
|
|
442
|
-
##### `externalIds`<sup>Optional</sup> <a name="aws-cdk-github-oidc.RoleProps.property.externalIds"></a>
|
|
1562
|
+
##### `externalIds`<sup>Optional</sup> <a name="externalIds" id="aws-cdk-github-oidc.RoleProps.property.externalIds"></a>
|
|
443
1563
|
|
|
444
1564
|
```typescript
|
|
445
1565
|
public readonly externalIds: string[];
|
|
446
1566
|
```
|
|
447
1567
|
|
|
448
|
-
- *Type:*
|
|
1568
|
+
- *Type:* string[]
|
|
449
1569
|
- *Default:* No external ID required
|
|
450
1570
|
|
|
451
1571
|
List of IDs that the role assumer needs to provide one of when assuming this role.
|
|
@@ -455,13 +1575,13 @@ AssumeRole operation will fail.
|
|
|
455
1575
|
|
|
456
1576
|
---
|
|
457
1577
|
|
|
458
|
-
##### `inlinePolicies`<sup>Optional</sup> <a name="aws-cdk-github-oidc.RoleProps.property.inlinePolicies"></a>
|
|
1578
|
+
##### `inlinePolicies`<sup>Optional</sup> <a name="inlinePolicies" id="aws-cdk-github-oidc.RoleProps.property.inlinePolicies"></a>
|
|
459
1579
|
|
|
460
1580
|
```typescript
|
|
461
1581
|
public readonly inlinePolicies: {[ key: string ]: PolicyDocument};
|
|
462
1582
|
```
|
|
463
1583
|
|
|
464
|
-
- *Type:* {[ key: string ]:
|
|
1584
|
+
- *Type:* {[ key: string ]: aws-cdk-lib.aws_iam.PolicyDocument}
|
|
465
1585
|
- *Default:* No policy is inlined in the Role resource.
|
|
466
1586
|
|
|
467
1587
|
A list of named policies to inline into this role.
|
|
@@ -473,13 +1593,13 @@ dependencies that could otherwise be introduced).
|
|
|
473
1593
|
|
|
474
1594
|
---
|
|
475
1595
|
|
|
476
|
-
##### `managedPolicies`<sup>Optional</sup> <a name="aws-cdk-github-oidc.RoleProps.property.managedPolicies"></a>
|
|
1596
|
+
##### `managedPolicies`<sup>Optional</sup> <a name="managedPolicies" id="aws-cdk-github-oidc.RoleProps.property.managedPolicies"></a>
|
|
477
1597
|
|
|
478
1598
|
```typescript
|
|
479
1599
|
public readonly managedPolicies: IManagedPolicy[];
|
|
480
1600
|
```
|
|
481
1601
|
|
|
482
|
-
- *Type:*
|
|
1602
|
+
- *Type:* aws-cdk-lib.aws_iam.IManagedPolicy[]
|
|
483
1603
|
- *Default:* No managed policies.
|
|
484
1604
|
|
|
485
1605
|
A list of managed policies associated with this role.
|
|
@@ -489,13 +1609,13 @@ You can add managed policies later using
|
|
|
489
1609
|
|
|
490
1610
|
---
|
|
491
1611
|
|
|
492
|
-
##### `maxSessionDuration`<sup>Optional</sup> <a name="aws-cdk-github-oidc.RoleProps.property.maxSessionDuration"></a>
|
|
1612
|
+
##### `maxSessionDuration`<sup>Optional</sup> <a name="maxSessionDuration" id="aws-cdk-github-oidc.RoleProps.property.maxSessionDuration"></a>
|
|
493
1613
|
|
|
494
1614
|
```typescript
|
|
495
1615
|
public readonly maxSessionDuration: Duration;
|
|
496
1616
|
```
|
|
497
1617
|
|
|
498
|
-
- *Type:*
|
|
1618
|
+
- *Type:* aws-cdk-lib.Duration
|
|
499
1619
|
- *Default:* Duration.hours(1)
|
|
500
1620
|
|
|
501
1621
|
The maximum session duration that you want to set for the specified role.
|
|
@@ -517,13 +1637,13 @@ but does not apply when you use those operations to create a console URL.
|
|
|
517
1637
|
|
|
518
1638
|
---
|
|
519
1639
|
|
|
520
|
-
##### `path`<sup>Optional</sup> <a name="aws-cdk-github-oidc.RoleProps.property.path"></a>
|
|
1640
|
+
##### `path`<sup>Optional</sup> <a name="path" id="aws-cdk-github-oidc.RoleProps.property.path"></a>
|
|
521
1641
|
|
|
522
1642
|
```typescript
|
|
523
1643
|
public readonly path: string;
|
|
524
1644
|
```
|
|
525
1645
|
|
|
526
|
-
- *Type:*
|
|
1646
|
+
- *Type:* string
|
|
527
1647
|
- *Default:* /
|
|
528
1648
|
|
|
529
1649
|
The path associated with this role.
|
|
@@ -533,13 +1653,13 @@ Friendly Names and Paths in IAM User Guide.
|
|
|
533
1653
|
|
|
534
1654
|
---
|
|
535
1655
|
|
|
536
|
-
##### `permissionsBoundary`<sup>Optional</sup> <a name="aws-cdk-github-oidc.RoleProps.property.permissionsBoundary"></a>
|
|
1656
|
+
##### `permissionsBoundary`<sup>Optional</sup> <a name="permissionsBoundary" id="aws-cdk-github-oidc.RoleProps.property.permissionsBoundary"></a>
|
|
537
1657
|
|
|
538
1658
|
```typescript
|
|
539
1659
|
public readonly permissionsBoundary: IManagedPolicy;
|
|
540
1660
|
```
|
|
541
1661
|
|
|
542
|
-
- *Type:*
|
|
1662
|
+
- *Type:* aws-cdk-lib.aws_iam.IManagedPolicy
|
|
543
1663
|
- *Default:* No permissions boundary.
|
|
544
1664
|
|
|
545
1665
|
AWS supports permissions boundaries for IAM entities (users or roles).
|
|
@@ -554,15 +1674,14 @@ permissions boundaries.
|
|
|
554
1674
|
|
|
555
1675
|
---
|
|
556
1676
|
|
|
557
|
-
##### `roleName`<sup>Optional</sup> <a name="aws-cdk-github-oidc.RoleProps.property.roleName"></a>
|
|
1677
|
+
##### `roleName`<sup>Optional</sup> <a name="roleName" id="aws-cdk-github-oidc.RoleProps.property.roleName"></a>
|
|
558
1678
|
|
|
559
1679
|
```typescript
|
|
560
1680
|
public readonly roleName: string;
|
|
561
1681
|
```
|
|
562
1682
|
|
|
563
|
-
- *Type:*
|
|
564
|
-
- *Default:* AWS CloudFormation generates a unique physical ID and uses that ID
|
|
565
|
-
for the role name.
|
|
1683
|
+
- *Type:* string
|
|
1684
|
+
- *Default:* AWS CloudFormation generates a unique physical ID and uses that ID for the role name.
|
|
566
1685
|
|
|
567
1686
|
A name for the IAM role.
|
|
568
1687
|
|
|
@@ -580,81 +1699,105 @@ Acknowledging IAM Resources in AWS CloudFormation Templates.
|
|
|
580
1699
|
---
|
|
581
1700
|
|
|
582
1701
|
|
|
583
|
-
## Protocols <a name="Protocols"></a>
|
|
1702
|
+
## Protocols <a name="Protocols" id="Protocols"></a>
|
|
584
1703
|
|
|
585
|
-
### IGithubActionsIdentityProvider <a name="aws-cdk-github-oidc.IGithubActionsIdentityProvider"></a>
|
|
1704
|
+
### IGithubActionsIdentityProvider <a name="IGithubActionsIdentityProvider" id="aws-cdk-github-oidc.IGithubActionsIdentityProvider"></a>
|
|
586
1705
|
|
|
587
|
-
- *Extends:*
|
|
1706
|
+
- *Extends:* aws-cdk-lib.aws_iam.IOpenIdConnectProvider
|
|
588
1707
|
|
|
589
|
-
- *Implemented By:*
|
|
1708
|
+
- *Implemented By:* <a href="#aws-cdk-github-oidc.GithubActionsIdentityProvider">GithubActionsIdentityProvider</a>, <a href="#aws-cdk-github-oidc.IGithubActionsIdentityProvider">IGithubActionsIdentityProvider</a>
|
|
590
1709
|
|
|
591
1710
|
Describes a Github OpenID Connect Identity Provider for AWS IAM.
|
|
592
1711
|
|
|
593
1712
|
|
|
594
|
-
#### Properties <a name="Properties"></a>
|
|
1713
|
+
#### Properties <a name="Properties" id="Properties"></a>
|
|
595
1714
|
|
|
596
|
-
|
|
1715
|
+
| **Name** | **Type** | **Description** |
|
|
1716
|
+
| --- | --- | --- |
|
|
1717
|
+
| <code><a href="#aws-cdk-github-oidc.IGithubActionsIdentityProvider.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
|
|
1718
|
+
| <code><a href="#aws-cdk-github-oidc.IGithubActionsIdentityProvider.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
|
|
1719
|
+
| <code><a href="#aws-cdk-github-oidc.IGithubActionsIdentityProvider.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
|
|
1720
|
+
| <code><a href="#aws-cdk-github-oidc.IGithubActionsIdentityProvider.property.oidcProviderRef">oidcProviderRef</a></code> | <code>aws-cdk-lib.interfaces.aws_iam.OIDCProviderReference</code> | A reference to a OIDCProvider resource. |
|
|
1721
|
+
| <code><a href="#aws-cdk-github-oidc.IGithubActionsIdentityProvider.property.openIdConnectProviderArn">openIdConnectProviderArn</a></code> | <code>string</code> | The Amazon Resource Name (ARN) of the IAM OpenID Connect provider. |
|
|
1722
|
+
| <code><a href="#aws-cdk-github-oidc.IGithubActionsIdentityProvider.property.openIdConnectProviderIssuer">openIdConnectProviderIssuer</a></code> | <code>string</code> | The issuer for OIDC Provider. |
|
|
1723
|
+
|
|
1724
|
+
---
|
|
1725
|
+
|
|
1726
|
+
##### `node`<sup>Required</sup> <a name="node" id="aws-cdk-github-oidc.IGithubActionsIdentityProvider.property.node"></a>
|
|
597
1727
|
|
|
598
1728
|
```typescript
|
|
599
1729
|
public readonly node: Node;
|
|
600
1730
|
```
|
|
601
1731
|
|
|
602
|
-
- *Type:*
|
|
1732
|
+
- *Type:* constructs.Node
|
|
603
1733
|
|
|
604
1734
|
The tree node.
|
|
605
1735
|
|
|
606
1736
|
---
|
|
607
1737
|
|
|
608
|
-
##### `env`<sup>Required</sup> <a name="aws-cdk-github-oidc.IGithubActionsIdentityProvider.property.env"></a>
|
|
1738
|
+
##### `env`<sup>Required</sup> <a name="env" id="aws-cdk-github-oidc.IGithubActionsIdentityProvider.property.env"></a>
|
|
609
1739
|
|
|
610
1740
|
```typescript
|
|
611
1741
|
public readonly env: ResourceEnvironment;
|
|
612
1742
|
```
|
|
613
1743
|
|
|
614
|
-
- *Type:*
|
|
1744
|
+
- *Type:* aws-cdk-lib.interfaces.ResourceEnvironment
|
|
615
1745
|
|
|
616
1746
|
The environment this resource belongs to.
|
|
617
1747
|
|
|
618
|
-
For resources that are created and managed
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
(those obtained from
|
|
623
|
-
|
|
1748
|
+
For resources that are created and managed in a Stack (those created by
|
|
1749
|
+
creating new class instances like `new Role()`, `new Bucket()`, etc.), this
|
|
1750
|
+
is always the same as the environment of the stack they belong to.
|
|
1751
|
+
|
|
1752
|
+
For referenced resources (those obtained from referencing methods like
|
|
1753
|
+
`Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
|
|
1754
|
+
different than the stack they were imported into.
|
|
624
1755
|
|
|
625
1756
|
---
|
|
626
1757
|
|
|
627
|
-
##### `stack`<sup>Required</sup> <a name="aws-cdk-github-oidc.IGithubActionsIdentityProvider.property.stack"></a>
|
|
1758
|
+
##### `stack`<sup>Required</sup> <a name="stack" id="aws-cdk-github-oidc.IGithubActionsIdentityProvider.property.stack"></a>
|
|
628
1759
|
|
|
629
1760
|
```typescript
|
|
630
1761
|
public readonly stack: Stack;
|
|
631
1762
|
```
|
|
632
1763
|
|
|
633
|
-
- *Type:*
|
|
1764
|
+
- *Type:* aws-cdk-lib.Stack
|
|
634
1765
|
|
|
635
1766
|
The stack in which this resource is defined.
|
|
636
1767
|
|
|
637
1768
|
---
|
|
638
1769
|
|
|
639
|
-
##### `
|
|
1770
|
+
##### `oidcProviderRef`<sup>Required</sup> <a name="oidcProviderRef" id="aws-cdk-github-oidc.IGithubActionsIdentityProvider.property.oidcProviderRef"></a>
|
|
1771
|
+
|
|
1772
|
+
```typescript
|
|
1773
|
+
public readonly oidcProviderRef: OIDCProviderReference;
|
|
1774
|
+
```
|
|
1775
|
+
|
|
1776
|
+
- *Type:* aws-cdk-lib.interfaces.aws_iam.OIDCProviderReference
|
|
1777
|
+
|
|
1778
|
+
A reference to a OIDCProvider resource.
|
|
1779
|
+
|
|
1780
|
+
---
|
|
1781
|
+
|
|
1782
|
+
##### `openIdConnectProviderArn`<sup>Required</sup> <a name="openIdConnectProviderArn" id="aws-cdk-github-oidc.IGithubActionsIdentityProvider.property.openIdConnectProviderArn"></a>
|
|
640
1783
|
|
|
641
1784
|
```typescript
|
|
642
1785
|
public readonly openIdConnectProviderArn: string;
|
|
643
1786
|
```
|
|
644
1787
|
|
|
645
|
-
- *Type:*
|
|
1788
|
+
- *Type:* string
|
|
646
1789
|
|
|
647
1790
|
The Amazon Resource Name (ARN) of the IAM OpenID Connect provider.
|
|
648
1791
|
|
|
649
1792
|
---
|
|
650
1793
|
|
|
651
|
-
##### `openIdConnectProviderIssuer`<sup>Required</sup> <a name="aws-cdk-github-oidc.IGithubActionsIdentityProvider.property.openIdConnectProviderIssuer"></a>
|
|
1794
|
+
##### `openIdConnectProviderIssuer`<sup>Required</sup> <a name="openIdConnectProviderIssuer" id="aws-cdk-github-oidc.IGithubActionsIdentityProvider.property.openIdConnectProviderIssuer"></a>
|
|
652
1795
|
|
|
653
1796
|
```typescript
|
|
654
1797
|
public readonly openIdConnectProviderIssuer: string;
|
|
655
1798
|
```
|
|
656
1799
|
|
|
657
|
-
- *Type:*
|
|
1800
|
+
- *Type:* string
|
|
658
1801
|
|
|
659
1802
|
The issuer for OIDC Provider.
|
|
660
1803
|
|