Skip to content

ITE-8 Proposal Draft: provide an in-toto-library - #29

Open
Dentrax wants to merge 1 commit into
in-toto:masterfrom
Dentrax:ite-8
Open

ITE-8 Proposal Draft: provide an in-toto-library#29
Dentrax wants to merge 1 commit into
in-toto:masterfrom
Dentrax:ite-8

Conversation

@Dentrax

@Dentrax Dentrax commented Sep 16, 2021

Copy link
Copy Markdown

This ITE proposes creating a new repository called in-toto-library under in-toto organization. This would allow
storing CUE and OPA policies under repository. This policies enforce correctness and truth of Attestation formats against pre-defined policies by running data format validating tools.

This is our first proposal on the in-toto community. 🎉 Sorry in advance for the any grammar errors. We are waiting your feedback! So we can improve the proposal according to your reviews. Still a lot to learn! 🤗

PTAL @dlorenc @verdverm

cc: @developer-guy @erkanzileli

Signed-off-by: Furkan <furkan.turkal@trendyol.com>
Co-authored-by: Erkan <erkan.zileli@trendyol.com>
Co-authored-by: Batuhan <batuhan.apaydin@trendyol.com>
@dlorenc

dlorenc commented Sep 16, 2021

Copy link
Copy Markdown

Cool! I love the idea of sharing sample policies somewhere.

@verdverm

verdverm commented Sep 16, 2021

Copy link
Copy Markdown

One thing that comes to mind is versioning the library, what this needs to be coordinated against, and how consumers can use a specified version.

That would imply some distinction between examples and library for others to use programmatically

@trishankatdatadog

Copy link
Copy Markdown
Contributor

Great idea! However, I'm not sure the name in-toto-library is the most descriptive. Perhaps something like in-toto-examples?

@reza-curtmola

reza-curtmola commented Sep 16, 2021

Copy link
Copy Markdown

Agree that in-toto-library can be a confusing repo name. in-toto-examples is in the right direction.

@adityasaky
adityasaky self-requested a review November 16, 2021 16:48

@adityasaky adityasaky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thank you for submitting this draft!

Comment thread ITE/8/README.adoc
| link:https://github.com/Dentrax[Furkan], https://github.com/developer-guy[Batuhan], https://github.com/erkanzileli[Erkan]

| Status
| Active :smile:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
| Active :smile:
| Draft

Comment thread ITE/8/README.adoc
[[abstract]]
== Abstract

This ITE proposes creating a new repository called `in-toto-library` under `in-toto` organization. This would allow

@adityasaky adityasaky Nov 17, 2021

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think in-toto-examples has some favour here. I personally like the sound of in-toto-policies to be quite clear about what we're talking about.

Comment thread ITE/8/README.adoc
. link:https://github.com/in-toto/in-toto-java/[in-toto-java]

Whereas in-toto provides end-to-end implementations using several programming languages, it requires responsibility
to maintain across different languages as you know. It _may_ take a lot of time to get specs up-to-date and requires constantly follow-up.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I'm not a 100% certain I follow how a library of policies tie into having multiple implementations. Could you elaborate on this point?

Comment thread ITE/8/README.adoc
link:https://www.accurics.com/resources/glossary/policy-as-code/[Policy as Code], is a general term that often refers to writing code in a high-level declarative language which describes policies.
The purpose of Policy as Code is to codify policy definitions in software, which allows for consistent, automated assessment of policy compliance in modern software development practices.

Increased security with reusable patterns and code snippets for creating additional policies.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think it's useful to have "building blocks" for various types of policies for adopters to build on, but we should also make a note about ongoing maintenance / updates.

Comment thread ITE/8/README.adoc
Increased security with reusable patterns and code snippets for creating additional policies.
in-toto-library will allow the projects to move fast yet still keep information secure. By doing so, we can trust this library.

=== Use Case 2: Providing Community-Owned Library of Policies

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think we can largely merge this with the previous use case...

Comment thread ITE/8/README.adoc

We can create a _source-of-truth_ by structuring information models and associated data schema such that every data element is mastered in only one place.

=== Use Case 3: Verifying Attestations (OCI Registry)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Let's generalize the text in this section and then point to the examples in cosign etc.

Comment thread ITE/8/README.adoc
[[reasoning]]
== Reasoning

Policy as Code eliminates the need for manual implementation with regard to sustaining and maintaining projects in in-toto.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think something to add here is that currently writing layouts (essentially policies for the current spec) is a semi-manual task at the moment, and this is feedback we've received from some users.

Comment thread ITE/8/README.adoc
It also removes human error, increases efficiency at the organizational level, allows for a large number of policies or changes, and protects systems from threats and disruptions.
It is also a bit easy to create and to extend policies for due to the presence of a large number of standard attestation specs.

[[security]]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I believe we should talk about a review process for new policies / updates, as well as regular maintenance. Outdated policy templates can lead to a false sense of the security adopters are getting by using in-toto.

Comment thread ITE/8/README.adoc
[[prototype-implementation]]
== Prototype Implementation

**Example Repository Structure**

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can we create a new repository using this format and point to it? We can move it to the in-toto namespace when this ITE is further along.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants