18874: Merge branch 'main' from arvados-workbench2.git
[arvados.git] / doc / install / container-shell-access.html.textile.liquid
1 ---
2 layout: default
3 navsection: installguide
4 title: Configure container shell access
5 ...
6 {% comment %}
7 Copyright (C) The Arvados Authors. All rights reserved.
8
9 SPDX-License-Identifier: CC-BY-SA-3.0
10 {% endcomment %}
11
12 Arvados can be configured to permit shell access to running containers. This can be handy for debugging, but it could affect reproducability of workflows. This feature can be enabled for admin users, or for all users. By default, it is entirely disabled.
13
14 The relevant configuration section is
15
16 <notextile>
17 <pre><code>    Containers:
18       ShellAccess:
19         # An admin user can use "arvados-client shell" to start an
20         # interactive shell (with any user ID) in any running
21         # container.
22         Admin: false
23
24         # Any user can use "arvados-client shell" to start an
25         # interactive shell (with any user ID) in any running
26         # container that they started, provided it isn't also
27         # associated with a different user's container request.
28         #
29         # Interactive sessions make it easy to alter the container's
30         # runtime environment in ways that aren't recorded or
31         # reproducible. Consider the implications for automatic
32         # container reuse before enabling and using this feature. In
33         # particular, note that starting an interactive session does
34         # not disqualify a container from being reused by a different
35         # user/workflow in the future.
36         User: false
37 </code></pre>
38 </notextile>
39
40 To enable the feature a firewall change may also be required. This feature requires the opening of tcp connections from @arvados-controller@ to the range specified in the @net.ipv4.ip_local_port_range@ sysctl on compute nodes. If that range is unknown or hard to determine, it will be sufficient to allow tcp connections from @arvados-controller@ to port 1024-65535 on compute nodes, while allowing traffic that is part of existing tcp connections.
41
42 After changing the configuration, @arvados-controller@ must be restarted for the change to take effect. When enabling, shell access will be enabled for any running containers. When disabling, access is removed immediately for any running containers, as well as any containers started subsequently. Restarting @arvados-controller@ will kill any active connections.
43
44 Usage instructions for this feature are available in the "User guide":{{site.baseurl}}/user/debugging/container-shell-access.html.