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

Add security_contacts field to OWNERS spec #5398

Closed

Conversation

sfowl
Copy link

@sfowl sfowl commented Jan 12, 2021

This supports #56

I don't believe similar changes are also needed to https://github.com/kubernetes/test-infra/blob/master/prow/repoowners/repoowners.go as no automation depends on this new additional field. Similarly, there seems to be no code references in test-infra for emeritus* keys, so I imagine adding new keys to OWNERS should not cause any issues.

EDIT: Made a PR for test-infra changes: kubernetes/test-infra#22075

@k8s-ci-robot k8s-ci-robot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Jan 12, 2021
@k8s-ci-robot
Copy link
Contributor

Welcome @sfowl!

It looks like this is your first PR to kubernetes/community 🎉. Please refer to our pull request process documentation to help your PR have a smooth ride to approval.

You will be prompted by a bot to use commands during the review process. Do not be afraid to follow the prompts! It is okay to experiment. Here is the bot commands documentation.

You can also check if kubernetes/community has its own contribution guidelines.

You may want to refer to our testing guide if you run into trouble with your tests not passing.

If you are having difficulty getting your pull request seen, please follow the recommended escalation practices. Also, for tips and tricks in the contribution process you may want to read the Kubernetes contributor cheat sheet. We want to make sure your contribution gets all the attention it needs!

Thank you, and welcome to Kubernetes. 😃

@k8s-ci-robot k8s-ci-robot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Jan 12, 2021
@k8s-ci-robot
Copy link
Contributor

Hi @sfowl. Thanks for your PR.

I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@k8s-ci-robot k8s-ci-robot added size/S Denotes a PR that changes 10-29 lines, ignoring generated files. area/contributor-guide Issues or PRs related to the contributor guide sig/contributor-experience Categorizes an issue or PR as relevant to SIG Contributor Experience. labels Jan 12, 2021
@sfowl sfowl force-pushed the add-security-contacts-to-owners branch from d09c25a to 7fedc9b Compare January 13, 2021 07:43
@sfowl sfowl changed the title WIP: Add security_contacts field to OWNERS spec Add security_contacts field to OWNERS spec Jan 14, 2021
@k8s-ci-robot k8s-ci-robot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jan 14, 2021
@sfowl
Copy link
Author

sfowl commented Jan 14, 2021

Removed WIP status, need to merge this before proceeding with bulk PRs to all OWNERS files and remove SECURITY_CONTACTS files.

@k8s-ci-robot k8s-ci-robot added area/github-management Issues or PRs related to GitHub Management subproject committee/steering Denotes an issue or PR intended to be handled by the steering committee. labels Jan 18, 2021
@sfowl
Copy link
Author

sfowl commented Jan 18, 2021

Copy link
Member

@tpepper tpepper left a comment

Choose a reason for hiding this comment

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

/ok-to-test

Maybe a dumb question, but why's this one the pre-req for bulk changes? Is it just to ensure the docs at contributors/guide/owners.md are right and then the bulk changes are implementing what's documented?

I ask mostly because I worry about what might break in this change. Is there anybody out there possibly using SECURITY_CONTACTS as it is an API? The current files aren't highly structured, but one could guess the "schema"? I don't see this as a blocker though. PSC has agreed a reasonable path in kubernetes/committee-security-response#56 which includes removal of the SECURITY_CONTACTS and you're implementing that. And it looks like you've done some archeology to try to confirm none of our things were using the files.

I've got one question about the new schema data around PII (see inline comments).

contributors/guide/owners.md Outdated Show resolved Hide resolved
slack: @alice
- github: dan
email: null
slack: null
```
Copy link
Member

@tpepper tpepper Jan 21, 2021

Choose a reason for hiding this comment

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

Are we "allowed" to publish these? I always hear this type of public identification mapping is somehow not allowed by GitHub ToS?

Will all three of {github,email,slack} be required?

Copy link
Member

Choose a reason for hiding this comment

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

I'm pretty sure we can publish those - github/email is mapped already via cncf gitdm from commits, and we have github -> slack mappings for slack user-groups in the slack-config.

Many people publish that info themselves for their personal website as well.

Copy link
Author

Choose a reason for hiding this comment

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

Will all three of {github,email,slack} be required?

No, I updated the descriptions to be clearer that only GitHub username is required. The other fields are optional.

I'm pretty sure we can publish those - github/email is mapped already via cncf gitdm from commits, and we have github -> slack mappings for slack user-groups in the slack-config.

That was my feeling as well. I also reached out to GitHub's privacy team for some input but I'm not sure if this is within their scope. I'll share any reply I get.

Also, I think the intention is for individuals to add update their own email/slack IDs. The bulk updates that add security_contacts to OWNERS will have email and slack set to null for all users.

Copy link
Author

Choose a reason for hiding this comment

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

Got a reply from github Trust & Safety team:

Thanks for reaching out. Our Acceptable Use Policies address your question in the following way:

While using the Service, under no circumstances will you:

violate the privacy of any third party, such as by posting another person's personal information without consent.

Additionally, Section 6 may apply, depending on where you're getting the information:

If you collect any User Personal Information from the Service, you agree that you will only use that User Personal Information for the purpose for which that User has authorized it.

If you're gathering and using public information from GitHub and are receiving consent from each of the data subjects, our Privacy Statement includes some further requirements. The following is especially important:

We expect you to reasonably secure any User Personal Information you have gathered from GitHub, and to respond promptly to complaints, removal requests, and "do not contact" requests from GitHub or GitHub users.

I hope this is helpful. Please let us know if we can answer any other questions.

I think the current proposal be okay then. Users would need to add their own contact info, we can't add any on their behalf.

Copy link
Member

Choose a reason for hiding this comment

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

One other thing I forgot to mention with Slack, names are not unique in there :| There can be multiple mrbobbytables for examples, thats why we have the mapping of slack name to underlying slack ID in usergroup management. I would avoid including that at all as you could easily ping the wrong person.

Copy link
Author

Choose a reason for hiding this comment

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

Ah, yeah I see what you mean looking in communication/slack-config. Some other options might be either to ask for the actual slack ID instead (downside: not easily enforceable), or enhance the spec to have keys for both slack name and slack ID (downside: messier, still not really enforceable).

So I think your suggestion to remove the slack field entirely is probably the most sensible. I'll hold back on the change for a day in case there are other ideas/opinions.

Copy link
Contributor

Choose a reason for hiding this comment

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

when this is place I am good to lgtm on this PR.

Copy link
Author

@sfowl sfowl Apr 22, 2021

Choose a reason for hiding this comment

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

Removed the slack field

@k8s-ci-robot k8s-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Jan 21, 2021
@sfowl
Copy link
Author

sfowl commented Jan 25, 2021

Maybe a dumb question, but why's this one the pre-req for bulk changes? Is it just to ensure the docs at contributors/guide/owners.md are right and then the bulk changes are implementing what's documented?

That was pretty much my thinking. It's also a chance to review the planned changes before creating the noise generated by bulk PRs.

I ask mostly because I worry about what might break in this change. Is there anybody out there possibly using SECURITY_CONTACTS as it is an API? The current files aren't highly structured, but one could guess the "schema"? I don't see this as a blocker though. PSC has agreed a reasonable path in kubernetes/security#56 which includes removal of the SECURITY_CONTACTS and you're implementing that. And it looks like you've done some archeology to try to confirm none of our things were using the files.

The existing docs I've seen describe SECURITY_CONTACTS as a data source only for use by the PSC. It's possible that someone else is using it as an API, but if this has the PSC's blessing then I'd agree that it's not a blocker.

In terms of breakages, today I came across the secping tool, which seems to still be used in test-infra. Mostly likely this will need some tweaks to be compatible with this change, but I'll move this back to WIP while I investigate.

@k8s-ci-robot
Copy link
Contributor

@sfowl: The label(s) /label do-not-merge/work-in-progress cannot be applied. These labels are supported: api-review, community/discussion, community/maintenance, community/question, cuj/build-train-deploy, cuj/multi-user, platform/aws, platform/azure, platform/gcp, platform/minikube, platform/other, tide/merge-method-merge, tide/merge-method-rebase, tide/merge-method-squash

In response to this:

/label do-not-merge/work-in-progress

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@sfowl
Copy link
Author

sfowl commented Jan 25, 2021

/hold

@k8s-ci-robot k8s-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jan 25, 2021
@k8s-ci-robot k8s-ci-robot added the sig/service-catalog Categorizes an issue or PR as relevant to SIG Service Catalog. label Apr 9, 2021
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: sfowl
To complete the pull request process, please assign parispittman after the PR has been reviewed.
You can assign the PR to them by writing /assign @parispittman in a comment when ready.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@sfowl
Copy link
Author

sfowl commented Apr 19, 2021

Sorry for the long delay on this @tpepper @mrbobbytables. Also CC-ing @tallclair @BenTheElder as they were on the original kubernetes/security issue and might have new feedback from the age it took me to circle back on this.

I've grepped through all repos in the below orgs for usage of SECURITY_CONTACTS:

kubernetes
kubernetes-client
kubernetes-csi
kubernetes-incubator
kubernetes-retired
kubernetes-security
kubernetes-sigs

The only example I found that used SECURITY_CONTACTS like an API was the secping tool, which opens issues in kube repos that are missing a SECURITY_CONTACTS file. I've made a PR already to change this behaviour to work with the new file structure, and another in test-infra to temporarily disable this tool during the transition.

I found no other instances that used SECURITY_CONTACTS like an API.

I've generated patches for the planned bulk updates each repo in the above orgs using this script. Here's an example using kubernetes/community.

My proposal now is to:

  1. Ask for this change to be merged
  2. Ask for temporary disable of secping in test-infra change to be merged
  3. Create bulk PRs to update OWNERS/SECURITY_CONTACTS in all repos in all kube orgs
  4. Update and re-enable secping tool

PS - Any suggestions on somewhere I could drop an email to give a heads up to repo owners about this change would be appreciated.

@sfowl
Copy link
Author

sfowl commented Apr 19, 2021

/unhold

@k8s-ci-robot k8s-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Apr 19, 2021
@mrbobbytables
Copy link
Member

Putting the hold back on it just to make sure it gets reviews from the right groups before merge 👍
/hold

cc @kubernetes/steering-committee
cc @kubernetes/owners

As an FYI the orgs kubernetes-incubator and kubernetes-retired are archived, they are not receiving any more updates.

@k8s-ci-robot k8s-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Apr 19, 2021
@lukehinds
Copy link
Contributor

cc @kubernetes/product-security-committee

@sfowl
Copy link
Author

sfowl commented Apr 26, 2021

Based on some feedback in kubernetes/committee-security-response#56 from @BenTheElder , I'm gonna re-examine this PR and see how I can re-add slack IDs (i.e. not slack display names) in combination with some validation in kubernetes/test-infra/prow/repoowners and kubernetes/test-infra/prow/plugins/verify_owners.

Will mark as draft again for the meantime.

@sfowl sfowl marked this pull request as draft April 26, 2021 09:05
@k8s-ci-robot k8s-ci-robot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Apr 26, 2021
@sfowl sfowl marked this pull request as ready for review May 4, 2021 12:54
@k8s-ci-robot k8s-ci-robot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label May 4, 2021
@sfowl
Copy link
Author

sfowl commented May 4, 2021

@BenTheElder I made a draft test-infra PR with some validation for slack IDs. My updated proposal is now:

  1. Get for this change (the spec update) to be merged
  2. Get test-infra validation PR merged
  3. Get temporary disable of secping in test-infra change to be merged
  4. Create bulk PRs to update OWNERS/SECURITY_CONTACTS in all repos in all kube orgs
  5. Update and re-enable secping tool

@k8s-triage-robot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Aug 2, 2021
@nikhita
Copy link
Member

nikhita commented Aug 9, 2021

@sfowl 👋 just wanted to check in -- is this still desired/are you still looking for review?

@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Sep 8, 2021
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Reopen this issue or PR with /reopen
  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/close

@k8s-ci-robot
Copy link
Contributor

@k8s-triage-robot: Closed this PR.

In response to this:

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Reopen this issue or PR with /reopen
  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/contributor-guide Issues or PRs related to the contributor guide area/github-management Issues or PRs related to GitHub Management subproject cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. committee/steering Denotes an issue or PR intended to be handled by the steering committee. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. sig/contributor-experience Categorizes an issue or PR as relevant to SIG Contributor Experience. sig/service-catalog Categorizes an issue or PR as relevant to SIG Service Catalog. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants