Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
70 changes: 70 additions & 0 deletions administration/kosli_capture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
title: "Kosli Capture Managed Service"
sidebarTitle: "Kosli Capture"
description: "Learn how the Kosli Capture Managed Service snapshots your cloud environments from Kosli's infrastructure, with no software to install."
tag: "BETA"
---
Comment thread
gsavage marked this conversation as resolved.

<Warning>
Kosli Capture is still in beta. Its capabilities and configuration format may change, and onboarding is done together with Kosli's Customer Success team.
</Warning>
Comment thread
gsavage marked this conversation as resolved.

Kosli Capture is a managed service that runs on Kosli's infrastructure and connects to your cloud platform to observe the resources deployed there. You grant Kosli Capture a set of permissions, and it uses them to run a `kosli snapshot` every few minutes against the infrastructure you have allowed it to scan.

Kosli also supports reporting from your own cloud accounts by running the Kosli CLI on a schedule. Kosli Capture inverts this, with Kosli running the regular [snapshots](/getting_started/environments) so there is no software for you to install.

Comment thread
gsavage marked this conversation as resolved.
## Current status

Kosli Capture currently supports ECS and Lambda running within AWS. Support for S3 snapshots and for other cloud providers is in active development. A limitation in Amazon's AWS API currently prevents Kosli Capture from snapshotting EKS clusters; support for Kubernetes running on other cloud providers (e.g. Azure) will be added shortly.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggestion — "Amazon's AWS API" is redundant (AWS is already Amazon's).

Suggested change
Kosli Capture currently supports ECS and Lambda running within AWS. Support for S3 snapshots and for other cloud providers is in active development. A limitation in Amazon's AWS API currently prevents Kosli Capture from snapshotting EKS clusters; support for Kubernetes running on other cloud providers (e.g. Azure) will be added shortly.
Kosli Capture currently supports ECS and Lambda running within AWS. Support for S3 snapshots and for other cloud providers is in active development. A limitation in the AWS API currently prevents Kosli Capture from snapshotting EKS clusters; support for Kubernetes running on other cloud providers (e.g. Azure) will be added shortly.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggestion — "Amazon's AWS API" is redundant (AWS is already Amazon's). Punctuation is fixed now; this is the last thing left in the sentence.

Suggested change
Kosli Capture currently supports ECS and Lambda running within AWS. Support for S3 snapshots and for other cloud providers is in active development. A limitation in Amazon's AWS API currently prevents Kosli Capture from snapshotting EKS clusters; support for Kubernetes running on other cloud providers (e.g. Azure) will be added shortly.
Kosli Capture currently supports ECS and Lambda running within AWS. Support for S3 snapshots and for other cloud providers is in active development. A limitation in the AWS API currently prevents Kosli Capture from snapshotting EKS clusters; support for Kubernetes running on other cloud providers (e.g. Azure) will be added shortly.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggestion — "Amazon's AWS API" is redundant (AWS is already Amazon's). Everything else in this sentence is resolved; this is the last bit.

Suggested change
Kosli Capture currently supports ECS and Lambda running within AWS. Support for S3 snapshots and for other cloud providers is in active development. A limitation in Amazon's AWS API currently prevents Kosli Capture from snapshotting EKS clusters; support for Kubernetes running on other cloud providers (e.g. Azure) will be added shortly.
Kosli Capture currently supports ECS and Lambda running within AWS. Support for S3 snapshots and for other cloud providers is in active development. A limitation in the AWS API currently prevents Kosli Capture from snapshotting EKS clusters; support for Kubernetes running on other cloud providers (e.g. Azure) will be added shortly.


## Approach

Getting started with Kosli Capture involves three stages:

<Steps>
<Step title="Create an IAM role">
Create an IAM role in your AWS account specifically for Kosli Capture. Kosli provides a CloudFormation template to simplify this process. The template requires a shared secret, which Kosli provides to you during onboarding.
</Step>
<Step title="Author a configuration document">
Working with Kosli's Customer Success team, author a configuration document that shows how your cloud resources should be mapped to Kosli environments. This configuration document is loaded into Kosli.
</Step>
<Step title="Enable Kosli Capture">
Kosli enables Kosli Capture for your Kosli org, and the regular snapshots appear in Kosli.
</Step>
</Steps>

## Finding resources

Kosli Capture finds all supported resources within your AWS accounts, and examines the tags on those resources to determine which Kosli environment should hold the snapshots. Kosli Capture will create physical environments for you.

Kosli Capture can filter out resources based on your tags.

As your cloud environment evolves, such as the addition of new ECS clusters or the retirement of existing Lambdas, Kosli Capture automatically detects the changes. Because Kosli Capture creates physical environments as needed, when your infrastructure changes, Kosli will keep up. No changes to the configuration created during the initial setup are required.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Improvement — environment auto-creation is now stated twice. Line 38 ends with "Kosli Capture will create physical environments for you", and this sentence repeats it four lines later ("Because Kosli Capture creates physical environments as needed..."). The claim only needs to land once; here the useful new information is that evolving infrastructure is handled without reconfiguration.

Suggested change
As your cloud environment evolves, such as the addition of new ECS clusters or the retirement of existing Lambdas, Kosli Capture automatically detects the changes. Because Kosli Capture creates physical environments as needed, when your infrastructure changes, Kosli will keep up. No changes to the configuration created during the initial setup are required.
As your cloud environment evolves, such as the addition of new ECS clusters or the retirement of existing Lambdas, Kosli Capture automatically detects the changes and creates any new physical environments needed. No changes to the configuration created during the initial setup are required.

If you take this, drop the trailing sentence on line 38 ("Kosli Capture will create physical environments for you.") so the claim appears once, in the paragraph that explains why it matters.

Comment on lines +38 to +42

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Improvement — environment auto-creation is still stated twice. Line 38 ends with "Kosli Capture will create physical environments for you", and line 42 repeats it ("Because Kosli Capture creates physical environments as needed, when your infrastructure changes, Kosli will keep up"). The second sentence in line 42 is also circular — it restates the claim as the reason for itself.

Fold the capability into the paragraph that explains why it matters, and drop it from line 38:

Suggested change
Kosli Capture finds all supported resources within your AWS accounts, and examines the tags on those resources to determine which Kosli environment should hold the snapshots. Kosli Capture will create physical environments for you.
Kosli Capture can filter out resources based on your tags.
As your cloud environment evolves, such as the addition of new ECS clusters or the retirement of existing Lambdas, Kosli Capture automatically detects the changes. Because Kosli Capture creates physical environments as needed, when your infrastructure changes, Kosli will keep up. No changes to the configuration created during the initial setup are required.
Kosli Capture finds all supported resources within your AWS accounts, and examines the tags on those resources to determine which Kosli environment should hold the snapshots.
Kosli Capture can filter out resources based on your tags.
As your cloud environment evolves, such as the addition of new ECS clusters or the retirement of existing Lambdas, Kosli Capture automatically detects the changes and creates any new physical environments needed. No changes to the configuration created during the initial setup are required.

Comment on lines +38 to +42

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Improvement — environment auto-creation is still claimed twice, and the second one is circular.

Line 38 ends with "Kosli Capture will create physical environments for you", then line 42 says "Because Kosli Capture creates physical environments as needed, when your infrastructure changes, Kosli will keep up" — which restates the claim as the reason for itself. The genuinely new information in that paragraph is that evolving infrastructure needs no reconfiguration; folding the auto-creation into it lands the claim once, in the place where it matters.

Suggested change
Kosli Capture finds all supported resources within your AWS accounts, and examines the tags on those resources to determine which Kosli environment should hold the snapshots. Kosli Capture will create physical environments for you.
Kosli Capture can filter out resources based on your tags.
As your cloud environment evolves, such as the addition of new ECS clusters or the retirement of existing Lambdas, Kosli Capture automatically detects the changes. Because Kosli Capture creates physical environments as needed, when your infrastructure changes, Kosli will keep up. No changes to the configuration created during the initial setup are required.
Kosli Capture finds all supported resources within your AWS accounts, and examines the tags on those resources to determine which Kosli environment should hold the snapshots.
Kosli Capture can filter out resources based on your tags.
As your cloud environment evolves, such as the addition of new ECS clusters or the retirement of existing Lambdas, Kosli Capture automatically detects the changes and creates any new physical environments needed. No changes to the configuration created during the initial setup are required.


## Revoking Kosli Capture

To prevent Kosli Capture from snapshotting your infrastructure, revoke the IAM role created in the initial setup. This role is the only mechanism for Kosli Capture to connect to your cloud environment, so revoking it acts as a simple kill-switch.

## Multiple AWS accounts

Kosli Capture can operate across multiple AWS accounts, allowing you to snapshot development, QA, pre-production, and production workloads with the same configuration document.

## IAM permissions

For Kosli Capture to snapshot your environment, you must grant a set of read-only permissions. Kosli's CloudFormation template lists these. The permissions are typically "Describe" or "List" permissions.

The IAM role created in your environment includes a trust policy that allows Kosli Capture to assume the role. The trust policy limits access to the AWS account in which Kosli Capture is running. Furthermore, the trust policy includes an external ID that acts as a shared secret between Kosli and you, so that only access from Kosli Capture is permitted.

The external ID (shared secret) is securely stored with Kosli Capture. Kosli's internal IAM permissions ensure that the secret can only be accessed by the specific instance of Kosli Capture that has been configured for you.

## Kosli Capture runtime details

Within Kosli's AWS accounts, every customer has a dedicated instance of Kosli Capture running. The Kosli Capture instance for a customer is granted access to that customer's external ID and no other customer's external ID. Similarly, the API token needed to access the Kosli API on behalf of a customer is only accessible by the specific instance of Kosli Capture for that customer. By running isolated instances of the managed service per customer, Kosli guarantees that each customer's data remains separate.

## Snapshot frequency

The configuration for the Kosli Capture Managed Service includes a snapshot frequency parameter. Kosli defaults to running a snapshot every five minutes, but you can change the frequency to meet your own requirements.
Comment thread
gsavage marked this conversation as resolved.

## Scaling

Kosli Capture runs multiple snapshots in parallel to support customers with large numbers of Kosli environments or AWS accounts.
4 changes: 4 additions & 0 deletions administration/managing_environments/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ terraform import kosli_environment.my_environment production
The `type` in your Terraform configuration must exactly match the type of the existing environment in Kosli. A mismatch will cause import errors or misconfiguration.
</Warning>

### Automatically creating physical environments

The [Kosli Capture Managed Service](/administration/kosli_capture) will automatically snapshot your infrastructure according to rules you define. Kosli Capture will create physical environments as needed.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Improvement — this page claims something the Kosli Capture page doesn't. "Kosli Capture will create physical environments as needed" is a real capability claim, but administration/kosli_capture.md never mentions creating environments — it only says tags "determine which Kosli environment should hold the snapshots", which reads as routing into environments that already exist. A reader who follows the link won't find the auto-creation behaviour confirmed. Worth adding a sentence to the "Finding resources" section of the Kosli Capture page, since auto-creation is arguably its biggest selling point over Terraform-managed environments.

Two smaller points on the same block:

  • Heading level. This is an H2, so it sits as a sibling of "Managing physical environments" and "Managing logical environments" — but it is about physical environments, and it's wedged between the two. ### Automatically creating physical environments, appended to the physical-environments section, nests correctly. It also sidesteps the mild scope clash with line 13 ("This page covers managing environments via Terraform"), since Kosli Capture isn't a Terraform mechanism.
  • Tense. "will automatically snapshot" / "will create" → present tense reads better for a capability that exists today.
Suggested change
The [Kosli Capture Managed Service](/administration/kosli_capture) will automatically snapshot your infrastructure according to rules you define. Kosli Capture will create physical environments as needed.
### Automatically creating physical environments
The [Kosli Capture Managed Service](/administration/kosli_capture) automatically snapshots your infrastructure according to rules you define, creating physical environments as needed.

(Note the suggestion changes the heading to H3 — if you take it, move the block above ## Managing logical environments stays as-is, it's already in the right position.)

Fix this →

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Improvement — the new section sits outside this page's stated scope. The H3 nesting under "Managing physical environments" is right, but line 13 tells the reader "This page covers managing environments via Terraform. For creating environments via the CLI or UI, see [Getting started: Environments]" — and Kosli Capture is neither Terraform, CLI, nor UI. A reader who took that <Info> at its word won't expect to find this here.

Simplest fix: say explicitly that this is the exception, so the section justifies its own presence.

Suggested change
The [Kosli Capture Managed Service](/administration/kosli_capture) will automatically snapshot your infrastructure according to rules you define. Kosli Capture will create physical environments as needed.
The [Kosli Capture Managed Service](/administration/kosli_capture) creates physical environments for you, without Terraform. It snapshots your infrastructure according to rules you define, creating environments as needed.

(Also switches "will automatically snapshot" / "will create" to present tense — it's a capability that exists today, not a future one.)

Comment on lines +67 to +69

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Improvement — heading style breaks with its siblings, and the tense reads as unreleased.

The H3 nesting under "Managing physical environments" is right, but the two sibling H3s on this page are imperative verb phrases — "Create a physical environment" (line 23), "Import an existing physical environment" (line 35) — so a gerund heading stands out. And "will automatically snapshot" / "will create" describes a capability that exists today.

One more thing worth a sentence: line 13 tells the reader "This page covers managing environments via Terraform", and Kosli Capture is not Terraform. Saying so explicitly stops the section reading as out of place.

Suggested change
### Automatically creating physical environments
The [Kosli Capture Managed Service](/administration/kosli_capture) will automatically snapshot your infrastructure according to rules you define. Kosli Capture will create physical environments as needed.
### Create physical environments automatically
The [Kosli Capture Managed Service](/administration/kosli_capture) creates physical environments for you, without Terraform. It snapshots your infrastructure according to rules you define, creating environments as needed.


## Managing logical environments

Logical environments group physical environments into a combined view — useful for representing a full production tier across multiple runtimes.
Expand Down
3 changes: 2 additions & 1 deletion config/navigation.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@
"administration/managing_custom_attestation_types/overview"
]
},
"administration/managing_tags"
"administration/managing_tags",
"administration/kosli_capture"
Comment thread
gsavage marked this conversation as resolved.
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion getting_started/environments.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ Currently, the following environment types are supported:
- Azure Web Apps and Function Apps
- Google Cloud Run (services and jobs)

You can report environment snapshots manually using the `kosli snapshot [...]` commands for testing. For production use, however, you would configure the reporting to happen automatically on regular intervals, e.g. via a cron job or scheduled CI job, or on certain events.
You can report environment snapshots manually using the `kosli snapshot [...]` commands for testing. For production use, however, you would configure the reporting to happen automatically on regular intervals, e.g. via a cron job or scheduled CI job, or on certain events. Kosli can also report these snapshots for you, using the [Kosli Capture Managed Service](/administration/kosli_capture).

You can follow one of the tutorials below to setup automatic snapshot reporting for your environment:
- [Kubernetes environment reporting](/tutorials/report_k8s_envs)
Expand Down