You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert

9
8
10
9
# AWS Okta Keyman
11
-
12
10
This is a simple command-line tool for logging into Okta and generating
13
-
temporary Amazon AWS Credentials. This tool makes it easy and secure for your
14
-
developers to generate short-lived, [logged and user-attributed][tracking]
15
-
credentials that can be used for any of the Amazon SDK libraries or CLI tools.
11
+
temporary Amazon AWS Credentials. This tool makes it easy and secure to
12
+
generate short-lived, [logged and user-attributed][tracking] credentials that can be
13
+
used for any of the Amazon SDK libraries or CLI tools.
16
14
17
15
## Features
18
-
19
-
We have support for logging into Okta, optionally handling MFA Authentication,
20
-
and then generating new SAML authenticated AWS sessions. This tool has a few core
21
-
features that help set it apart from other similar tools that are available.
16
+
Key features listed here. Keep scrolling for more details.
17
+
18
+
* MFA support
19
+
* Multiple AWS role support
20
+
* Automatic reup/refresh mode
21
+
* Dynamic AWS/Okta integration list
22
+
* Automatic username selection
23
+
* Okta password caching
24
+
* Command wrapping
25
+
* Screen/shell only output
26
+
* GovCloud support
27
+
* Adjustable key lifetime
28
+
* Console login URLs
29
+
* Config files
30
+
* Interactive config generation
31
+
* Installation via pip and Homebrew
32
+
* Linux, Windows, and OSX support
33
+
34
+
Benefits vs other similar tools:
35
+
36
+
* Runs without external dependencies; no servers or lambdas required
37
+
* No API keys required; just your Okta username and password
38
+
* No analytics or metrics collection; this tool does _not_ call home in any way
39
+
* Open source distributed as source; you can see what you're running
40
+
* Wide Python version support; works on Python 2.7.4+ and 3.5.0+.
22
41
23
42
### Optional MFA Authentication
24
-
25
43
If you organization or integration requires MFA we will automatically detect that
26
44
requirement during authentication and prompt the user to complete the
27
45
Multi Factor Authentication.
@@ -40,7 +58,6 @@ but makes this tool work on remote servers or in any other case where you may no
40
58
be able to use a browser.
41
59
42
60
#### Supported MFA Solutions
43
-
44
61
* Okta Verify
45
62
* Duo Auth (push, call, or OTP via CLI)
46
63
* Duo Auth (push, call, or OTP via web browser)
@@ -54,25 +71,10 @@ Windows Hello, U2F, email, and physical token (RSA, Symantec) are not supported
54
71
at this time.
55
72
56
73
### Multiple AWS Roles
57
-
58
74
AWS Okta Keyman supports multiple AWS roles when configured. The user is prompted to
59
-
select the role they wish to use before the temporary keys are generated. An example
60
-
of this is shown here:
61
-
62
-
```text
63
-
16:48:48 (WARNING) Multiple AWS roles found; please select one
64
-
65
-
Account Role
66
-
[0] example-prod Admin
67
-
[1] example-prod Dev
68
-
Selection: 0
69
-
70
-
16:48:51 (INFO) Getting SAML Assertion from example
@@ -179,7 +167,6 @@ The console login link will be output on the screen for you to use. Just provide
179
167
parameter when running Keyman.
180
168
181
169
### Config file .. predefined settings for you or your org
182
-
183
170
The config file, which defaults to `~/.config/aws_okta_keyman.yml`, allows you to
184
171
pre-set things like your username, Okta organization name (subdomain), and AWS accounts
185
172
and App IDs to make this script simpler to use. This also supports username assumption
@@ -195,31 +182,16 @@ Example config file:
195
182
username: automatic-username@example.com
196
183
org: example
197
184
accounts:
198
-
- name: Test
199
-
appid: exampleAppIDFromOkta/123
200
185
- name: Dev
201
186
appid: exampleAppIDFromOkta/234
202
187
- name: Prod
203
188
appid: exampleAppIDFromOkta/345
204
189
```
205
190
206
191
When used you'll get a similar interface to AWS Role selection but for your AWS
207
-
accounts:
208
-
209
-
```text
210
-
16:48:41 (WARNING) No app ID provided; select from available AWS accounts
211
-
212
-
Account
213
-
[0] Test
214
-
[1] Dev
215
-
[2] Prod
216
-
Selection: 2
217
-
218
-
16:48:47 (INFO) Using account: Prod / exampleAppIDFromOkta/123
219
-
```
192
+
accounts.
220
193
221
194
### Interactive Configuration
222
-
223
195
For interactive configuration and creation of the config file you can start the tool with just config as a parameter and you will be propted to provide the basic information needed to get started. An example of this is shown here:
224
196
225
197
```text
@@ -260,18 +232,14 @@ App ID:
260
232
```
261
233
262
234
## Python Versions
263
-
264
235
Python 2.7.4+ and Python 3.5.0+ are supported.
265
236
266
237
Support for older Python versions will be maintained as long as is reasonable.
267
238
Before support is removed a reminder/warning will be provided.
268
239
269
240
## Usage
270
-
271
241
### Client Setup
272
-
273
-
#### Mac OS Installation with Homebrew
274
-
242
+
#### Mac OS Installation
275
243
`brew tap nathan-v/aws-okta-keyman` and then `brew install aws_okta_keyman`.
276
244
277
245
Or install via URL (which will not receive updates):
@@ -280,15 +248,13 @@ Or install via URL (which will not receive updates):
0 commit comments