Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CLD-6659] Add documentation for Cloud IP Filtering #6792

Merged
merged 22 commits into from
Jan 16, 2024
Merged
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
6993fb7
Add documentation for Cloud IP Filtering
nickmisasi Nov 15, 2023
49cba6d
Update source/manage/cloud-ip-filtering.rst
cwarnermm Nov 16, 2023
3853105
Update source/manage/cloud-ip-filtering.rst
cwarnermm Nov 16, 2023
1f2423c
Apply suggestions from code review
cwarnermm Nov 16, 2023
de22dec
Update source/manage/cloud-ip-filtering.rst
cwarnermm Nov 16, 2023
701ebec
Update source/manage/cloud-ip-filtering.rst
cwarnermm Nov 16, 2023
91b2fea
Apply suggestions from code review
cwarnermm Nov 16, 2023
17db295
Change badge style
nickmisasi Nov 16, 2023
9b95fc2
Merge branch 'ip-filtering-docs' of github.com:mattermost/docs into i…
nickmisasi Nov 16, 2023
d44585b
Merge branch 'master' into ip-filtering-docs
cwarnermm Nov 16, 2023
0c05b89
Merge branch 'master' into ip-filtering-docs
cwarnermm Nov 17, 2023
bffd241
Merge branch 'master' into ip-filtering-docs
stafot Nov 23, 2023
b6652fe
Merge branch 'master' into ip-filtering-docs
cwarnermm Nov 27, 2023
e0e111f
Merge branch 'master' into ip-filtering-docs
cwarnermm Dec 4, 2023
a60d77e
Added screenshots & animated gif
cwarnermm Dec 4, 2023
9108976
Merge branch 'master' into ip-filtering-docs
cwarnermm Dec 5, 2023
a9bdf5d
Merge branch 'master' into ip-filtering-docs
cwarnermm Dec 7, 2023
2213b41
Merge branch 'master' into ip-filtering-docs
cwarnermm Dec 13, 2023
aff94e4
Merge branch 'master' into ip-filtering-docs
stafot Dec 14, 2023
5f2ea81
Merge branch 'master' into ip-filtering-docs
cwarnermm Jan 8, 2024
3e49ef1
Merge branch 'master' into ip-filtering-docs
cwarnermm Jan 12, 2024
8cb2b1d
Merge branch 'master' into ip-filtering-docs
amyblais Jan 16, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions source/_static/badges/ent-cloud-only.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
:orphan:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for creating a new badge for this Enterprise Cloud-only feature. Please note that the "only" badges are exception badges that display in yellow, and are typically used inline on a page where a general badge is included at the top of the page.

Please use the non-only badge code for a white plan/deployment badge instead.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Latest commit should look like
image

:nosearch:

.. raw:: html

<div class="mm-badge">

|plans-img| Available only on `Enterprise <https://mattermost.com/pricing/>`__ plans

|deployment-img| Available only for `Cloud <https://customers.mattermost.com/cloud/signup/>`__ deployments

.. |plans-img| image:: ../_static/images/badges/flag_icon.svg

.. |deployment-img| image:: ../_static/images/badges/deployment_icon.svg

.. raw:: html

</div>
2 changes: 2 additions & 0 deletions source/guides/cloud-workspace-management.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@ Cloud workspace management
Workspace usage </manage/workspace-usage>
Workspace migration </manage/cloud-data-export>
Cloud data residency </manage/cloud-data-residency>
Cloud IP Filtering </manage/cloud-ip-filtering>

* :doc:`Mattermost Cloud billing </manage/cloud-billing>` - Set up and manage billing for your Mattermost Cloud workspace.
* :doc:`Workspace usage </manage/workspace-usage>` - Keep your workspace active.
* :doc:`Workspace migration </manage/cloud-data-export>` - Migrate your workspace using the mmctl tool.
* :doc:`Cloud data residency </manage/cloud-data-residency>` - Find information about your data in the Cloud.
* :doc:`Cloud IP Filtering </manage/cloud-ip-filtering>` - Restrict access to your Mattermost Cloud workspace to a specific IP address range.
Binary file added source/images/add-ip-filter-range.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/images/enable-disable-ip-filtering.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/images/ip-address-not-in-filters.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/images/system-console-ip-filtering.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
93 changes: 93 additions & 0 deletions source/manage/cloud-ip-filtering.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
Cloud IP Filtering
========================

.. include:: ../_static/badges/ent-cloud-only.rst
:start-after: :nosearch:

IP filtering is a powerful security feature that allows system admins to control access to their workspace by defining approved IP ranges. Only users within these specified IP ranges can access the workspace, ensuring enhanced security for your workspace. IP filtering requires a subscription to Mattermost Cloud Enterprise.

Configure IP filtering
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nickmisasi - Based on the v9.4 server changelog, Cloud IP Filtering will be disabled OOTB behind a feature flag.

Are you open to updating this new docs page to include details on enabling the feature flag as an admin?

Copy link
Contributor Author

@nickmisasi nickmisasi Dec 13, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

End users (ie, anyone not on the Mattermost Cloud team) can't control feature flags in Cloud. The feature flag's in place so that we can wait until other system dependencies (CWS, Provisioner, etc) are ready without having to hold up the 9.4 release. An additional benefit is that we can disable the new feature in the event a glaring issue is found after release.

I'm not sure it's worth documenting this as it's invisible to the user and may just cause confusion. Let me know what you think!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing to add - the plan would be to enable the feature flag immediately as soon as the release rolls out to the enterprise ring in Cloud

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're absolutely right -- users can't enable feature flags in Cloud. I'd forgotten that important point. No sense documenting something that Cloud admins won't be able to do.

Given that the plan is to enable soon after release to the Enterprise ring, I wonder if the changelog needs a small update to clarify that point? Thoughts?

------------------------

1. **Log in as System Admin**: Access the System Console of your workspace, ensuring your user is a system admin.
2. **Go to Site Configuration**: Once logged in, go to the **Site Configuration** section.
3. **Access IP Filtering Settings**: Under **Site Configuration**, select **IP Filtering** to access the IP Filtering settings.

.. image:: ../images/system-console-ip-filtering.png
:alt: An example of the System Console interface where admins can configure IP filtering.

About CIDR notation
----------------------------

CIDR (Classless Inter-Domain Routing) notation is used to specify a range of IP addresses. It consists of an IP address followed by a forward slash and a number indicating the network's prefix length. For example:

- ``192.168.0.0/24`` represents the IP range from ``192.168.0.0`` to ``192.168.0.255``.
- The ``/24`` signifies that the first 24 bits are the network address, leaving 8 bits for host addresses.

.. tip::

For a more in-depth explanation of CIDR notation, refer to `this article </https://aws.amazon.com/what-is/cidr/>`__.

Configure IP filters
------------------------

Enable/disable IP filtering
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

System admins have the option to enable or disable IP filtering:

- **Enable:** To activate IP filtering, ensure at least one IP range is added to the whitelist.
- **Disable:** Temporarily disable IP filtering by removing all IP ranges from the whitelist, or by flipping the global IP Filtering toggle in the System Console.

.. image:: ../images/enable-disable-ip-filtering.gif
:alt: An example of enabling and disabling Mattermost IP filtering in the System Console.

Add an IP range
~~~~~~~~~~~~~~~~~~~~~~~

To add an IP range to the whitelist, follow these steps:

1. Select the **Add Filter** button within the IP Filtering settings page in the System Console.
2. Enter the IP range using CIDR notation. For example, ``192.168.1.0/24``.
3. Provide a descriptive name or label for the IP range to ease identification in the future.
4. Save the changes.

.. image:: ../images/add-ip-filter-range.png
:alt: An example of adding an IP filter range for a Mattermost Cloud deployment.

.. note::

The System Console will restrict you from saving changes if the IP address you are accessing your workspace on is not within the ranges you have specified at the time you save your changes.

.. image:: ../images/ip-address-not-in-filters.png
:alt: An example of the Mattermost System Console blocking changes to IP filtering.

Edit or remove an existing IP range
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

To edit or remove an existing IP range from the whitelist:

1. Locate the IP range you want to modify within the **IP Filtering** settings.
2. Hover over the rule you'd like to edit or delete, and select the respective edit or delete option beside the IP range.
3. Make necessary changes or confirm the removal of the IP range.
4. Save your changes by selecting **Save**.

Unable to access your workspace?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

If you are unable to access your workspace due to previously set IP filters, and you need to regain access to your workspace, your workspace owner can:

1. Log in to the `Mattermost Customer Portal <https://customers.mattermost.com/>`__.
2. Select the **IP Filtering** menu item in the left hand side bar.
3. Select **Disable IP Filtering**.

.. note::

Going through this process will disable **all** existing rules applied to your workspace. This means that any IP address will now be able to access it.

Conclusion
--------------

By configuring IP filters using CIDR notation, system admins can effectively manage access to the workspace, enhancing security by allowing access only from specified IP ranges.

For any further assistance or queries, `contact our support team </https://mattermost.com/support/>`__.