Commit graph

3970 commits

Author SHA1 Message Date
Ev Kontsevoy b2c12066a0 Updated getting started experience for systemd users
- Modified the default teleport.service to start without
  /etc/teleport.yaml
- Updated REAMDE for systemd unit
- Updated ./install script
2018-07-19 18:04:14 -07:00
Russell Jones 9a7a801d5d Updated CHANGELOG.md. 2018-07-19 18:56:55 +00:00
Ev Kontsevoy 617907f055 Finished documenting the updated storage back-ends 2018-07-18 21:26:16 -07:00
Ev Kontsevoy 4ee32125fd Miscellaneous documentation improvements
* Added "Filesystem Layout" section
* Added references to DynamoDB audit log section to appropriate places
* Cherry-picked 2.5 changes into 2.7
2018-07-18 21:26:16 -07:00
Sasha Klizhentas f3488a6c76 Fix helm template typos 2018-07-18 17:23:56 -07:00
Alexey Kontsevoy a9589bf38f
Merge pull request #2090 from gravitational/alexey/http-files
http files/separate remote location from file name in SCP requests
2018-07-18 19:59:33 -04:00
Alexey Kontsevoy a587a32838 (web) dist 2018-07-18 19:51:52 -04:00
Alexey Kontsevoy 05129fbd58 (web) file transfer - change layout 2018-07-18 19:40:16 -04:00
Alexey Kontsevoy ee98d7335d http files/separate remote location from file name in SCP requests 2018-07-18 19:05:00 -04:00
Sasha Klizhentas f699bd1a76 Fix error handling in audit sessions and events.
This commit fixes #2084
2018-07-18 15:54:51 -07:00
Alexey Kontsevoy 15c3242d2b (web) dist 2018-07-17 18:47:07 -04:00
Alexey Kontsevoy 5872d05db0 (web) file transfer 2018-07-17 18:47:07 -04:00
Ev Kontsevoy 19ab5ab2fa Updated the documentation to correct for the default storage type 2018-07-17 09:52:49 -07:00
Ev Kontsevoy 9a6bf2c18d
Merge pull request #2076 from gravitational/ev/docs-2.7
Ev/docs 2.7
2018-07-17 09:44:36 -07:00
Ev Kontsevoy e97e57d2bf Updated per sasha suggestions 2018-07-17 09:43:40 -07:00
Ev Kontsevoy 98e5b2027c Documentation for forceful SSH session terminatino options
Docs for terminating user serssions in case of:

- idle clients
- expired certs

Closes #1935
2018-07-17 09:43:40 -07:00
Ev Kontsevoy ca457af9fc Created 2.7 version of the docs. 2018-07-17 09:43:40 -07:00
Sasha Klizhentas e595c3793d Log events to multiple destinations
This commit implements #2070

```yaml
teleport:
  storage:
    type: dir
    audit_events_uri:  [file:///var/lib/teleport/events, dynamodb://test_grv8_events]
    audit_sessions_uri: s3://testgrv8records
```
2018-07-16 18:34:13 -07:00
Russell Jones 0561ab1f01
Merge pull request #2077 from gravitational/rjones/protobuf-web-term
Use protobufs to communicate between proxy and web client.
2018-07-16 16:13:49 -07:00
Russell Jones 5ae6195d79 Use protobufs to communicate between proxy and web client. 2018-07-16 14:44:50 -07:00
Russell Jones eab1eb0014 Updated CHANGELOG.md. 2018-07-13 23:37:22 +00:00
Russell Jones cbb000b37c
Merge pull request #2074 from gravitational/rjones/dynamic-labels
Fetch fresh server representation when checking access to server
2018-07-13 15:58:54 -07:00
Russell Jones 33aa98a2fd Use srv.Server in srv.AuthHandlers so that fresh server information is
always returned. This allows updates to dynamic labels to be reflected
when checking access to a server.
2018-07-13 20:50:02 +00:00
Russell Jones 71ffacdc9a
Merge pull request #2062 from gravitational/rjones/dir-perf
Flat keyspace directory backend.
2018-07-13 13:46:49 -07:00
Russell Jones ce1c7476b9 Updated dir backend to a flat keyspace. Added UpsertItems endpoint to
all backends to support bulk insertion. Added UpsertNodes endpoint,
which is used by the state cache to speed up GetNodes.
2018-07-13 20:12:34 +00:00
Sasha Klizhentas 95dcc8bbe7 Introduce disconnect client logic.
This commit implements #1935, fixes #2038

Auth server now supports global
defaults for timeout behavior:

```
auth_service:
  client_idle_timeout:  15m
  disconnect_expired_cert: no
```

New role options were introduced:

```
kind: role
version: v3
metadata:
  name: intern
  spec:
    options:
    # these two settings override the global ones:
    client_idle_timeout:  1m
    disconnect_expired_cert: yes
```
2018-07-12 19:00:13 -07:00
Alexey Kontsevoy 775edea9cd
Merge pull request #2055 from gravitational/alexey/files
http file transfer
2018-07-12 20:17:24 -04:00
Alexey Kontsevoy 57b2789a49 http file transfer 2018-07-12 14:58:37 -04:00
Roman Tkachenko 5a3c8527d3 Add 'type' field to github auth request. 2018-07-12 10:54:17 -07:00
Tom Cook 2a690ef271 Fix documentation typos
Configure was misspelled in a few places. Fixed.
2018-07-06 10:01:35 -07:00
Yusuke KUOKA eac92edd20 Idiomatic helm chart for Teleport
This is a helm chart for Teleport that conforms to [helm chart best practices](https://docs.helm.sh/chart_best_practices/) and various conventions seen in the official charts repository, so that it becomes easy-to-use and flexible enough to support many deployment scenarios.

Features:

- Locally testable on minikube
- Chart values for flexible configuration, instead of sourcing the raw teleport.yaml contained in the chart
- Automatically rolling-update the pods on configuration change according to the helm best practices
- Service and deplyment ports more finely configurable
- Customizable service and ingress for exposing the proxy to the private network or the internet
  - Use service annotatinos for integration with e.g. [external-dns](https://github.com/kubernetes-incubator/external-dns)
  - Use ingress for integration with e.g.[aws-alb-ingress-controller](https://github.com/kubernetes-sigs/aws-alb-ingress-controller)
- Configurable pod annotations. Uesful for IAM integration with kube2iam/kiam for example.
- Customizable pod assignment for security and availability
2018-07-06 09:35:10 -07:00
Alexander Klizhentas 4f5566697b
Merge pull request #2053 from gravitational/sasha/dynamic-forward-port
External traits in node labels and regexp role map
2018-07-02 16:35:54 -07:00
Sasha Klizhentas 045490de25 External traits in node labels and regexp role map
This commit adds two extensions to template variables
in roles and adds support for regular expressions
and group captures in role mapping of trusted clusters.

1. Roles node_labels can expand variables from traits:

allow:
  node_labels:
    '{{external.key}}': '{{external.val}}'
deny:
  node_labels:
    '{{external.key}}': '{{external.val}}'

If traits variable is not found, label key pair in allow or
deny rule will be set to empty key or value, so if 'external.val'
trait is missing, the resulting role will not match
allow or deny rule:

allow:
  node_labels:
    '': 'val'
deny:
  node_labels:
    '': 'val'

Same thing will happen for missing value:

allow:
  node_labels:
    'key': ''
deny:
  node_labels:
    'key': ''

2. Trusted cluster role mapping can now
support advanced expressions:

a. Glob values will math any string, including
empty one

   role_map:
   - remote: 'cluster-*'
     local: [clusteradmin]

a. Regular expression syntax is supported:

Syntax: https://github.com/google/re2/wiki/Syntax

Brackets can be used as a capture group and referred
to with expand variable:

   role_map:
   - remote: '^clusteradmin-(.*)$'
     local: [unprivileged-$1]

Will map incoming role 'clusteradmin-account-1' to 'guest-account-1'.

3. Same regular expression syntax is supported for SAML and OIDC
mappings:

a. Glob matches of values instead of static matches:

  claims_to_roles:
      - {claim: "roles", value: "gravitational/*", roles: ["clusteradmin"]}

b. Regexp matches with subgroup expands:

  attributes_to_roles:
      - {name: "roles", value: "^gravitational/(.*)$", roles: ["cluster-$1"]}
2018-07-02 16:13:12 -07:00
Alexander Klizhentas 32475f602b
Merge pull request #2050 from gravitational/sasha/cleanup
Add prune settings and remove unused files
2018-06-29 16:40:08 -07:00
Sasha Klizhentas 273b96bd87 Add prune settings and remove unused files 2018-06-29 16:23:59 -07:00
Alexander Klizhentas 85e60b9cd8
Merge pull request #2049 from gravitational/sasha/runfix
Fix proxying long polling requests.
2018-06-29 16:10:07 -07:00
Sasha Klizhentas 026e8e4383 Fix proxying long polling requests.
Fixes #2039

This commit fixes long polling cases with teleport
for K8s that did not work because flush was not
called during io.Copy commands.
2018-06-29 15:34:43 -07:00
Alexander Klizhentas a527cdbe04
Merge pull request #2047 from gravitational/sasha/serialize
Serialize requests for certificates.
2018-06-28 15:09:05 -07:00
Sasha Klizhentas 9fc6c049ae Serialize requests for certificates.
This commit serializes requests for certificates
arrigiving for the same user, concurrent requests
will wait for the first request to finish.

This is done to fix kubectl usage problem that tends
to issue many requests in parallel on first use.
2018-06-28 13:37:40 -07:00
Alexander Klizhentas bd29843d3a
Merge pull request #2041 from gravitational/sasha/tshlogin
Update tsh login to select clusters.
2018-06-25 18:37:59 -07:00
Sasha Klizhentas e570b24eeb Update tsh login to select clusters.
The following changes have been introduced
to tsh login behavior:

1. tsh login now accepts cluster name
as an optional positional argument:

$ tsh login clustername

2. If tsh login is called without arguments
and the current credentials are valid,
tsh login now prints status, previous behavior
always forced login:

$ tsh login
... print status if logged in...

2. If tsh login is called with the proxy
equal to current, tsh login selects cluster,
otherwise it will re-login to another proxy:

$ tsh login one
... selected cluster one

$ tsh login two
... selected cluster two

$ tsh login --proxy=example.com three
... selected cluster three because
proxy is the same

$ tsh login --proxy=acme.example.com four
...will switch to proxy acme.example.com
and cluster four
2018-06-25 18:28:46 -07:00
Alexander Klizhentas f8b8de0a0a
Merge pull request #2045 from gravitational/sasha/usage
Add tests to cover usage
2018-06-25 17:37:41 -07:00
Sasha Klizhentas f9d1b39c0f Add tests to cover usage 2018-06-25 17:08:55 -07:00
Ev Kontsevoy 1c2b2b7de2
Merge pull request #2043 from gravitational/ev/2026
Updated downlad links to the new location
2018-06-25 13:30:48 -07:00
Ev Kontsevoy 1728d7b277 Updated downlad links to the new location
- README.md
- Docs
2018-06-25 13:26:39 -07:00
Alexander Klizhentas a7286b19c8
Merge pull request #2037 from gravitational/sasha/avidbots-remove-advertise-check
removed loopback check from AdvertiseAddr
2018-06-22 16:35:20 -07:00
Joseph Duchesne 6dce7fa758 removed loopback check from AdvertiseAddr 2018-06-22 16:22:12 -07:00
Alexander Klizhentas 913659e918
Merge pull request #2035 from gravitational/sasha/kubeclusters
Add framework for trusted cluster K8s access
2018-06-22 14:25:33 -07:00
Sasha Klizhentas 66fa34bcde Add framework for trusted cluster K8s access 2018-06-22 12:56:58 -07:00
Russell Jones 1f1924c1f0
Merge pull request #2034 from gravitational/rjones/remove-i
Remove -i flag from "go build".
2018-06-22 12:06:32 -07:00