I'm proposing following permissions: https://i.imgur.com/uiFBtuW.png. The
meaning of every permission is explained at https://wiki.jenkins.io/
display/JENKINS/Matrix-based+security.

Any objections?

On Fri, Jan 5, 2018 at 11:03 PM, Marco de Abreu <
marco.g.ab...@googlemail.com> wrote:

> I'm currently working on a prototype of SSO based on GitHub and a few
> issues arose:
>
> We are not able to use the permission strategy which determines the access
> rights based on the read/write permission to a project as the
> Jenkins-plugin is not able to resolve the link between Jenkins-jobs and
> GitHub-repositories. Instead I would propose to use a role-based approach
> using https://wiki.jenkins.io/display/JENKINS/Role+Strategy+Plugin. In
> this case we would have three roles: Anonymous, Administrator and
> Committer. While everybody would authenticate using their regular GitHub
> account, the role assignment would have to happen manually. Considering
> that the amount of administrators and committers doesn't change that
> frequently, this shouldn't be too much of an issue - auto populating the
> status is not possible unfortunately.
>
> Reason for splitting Administrators and Committers into two separate roles
> has a security reason. At the moment, we're using Chris Oliviers GitHub
> credentials to populate the commit status. If all committers would gain
> full admin rights, they would have access to these credentials. Chris is
> not fine with this approach and would like to limit the amount of people
> with access to his credentials as much as possible.
>
> In order to address his concerns, I propose to add Chris to the committer
> as well as to the admin role, while all other committers will only receive
> the committer role without read access to the credentials. In a later
> email, I will make a proposal for the detailed committer role rights. You
> can check all available options at https://wiki.jenkins.io/
> display/JENKINS/Matrix-based+security.
>
> All people who have access to the underlying AWS account would be granted
> the Administrator role with full access. At the moment, this would be
> Meghna Baijal, Gautam Kumar and myself.
>
> An alternative solution would be to create a bot account specifically for
> MXNet CI and use its credentials instead of Chris'. This account requires
> write permission to the repository, but would give us the advantage that
> these credentials would be shared within the committers and thus making the
> restrictions regarding credentials obsolete (and Chris would be happy not
> the see his face within every single PR :P ). I've asked around and
> received the feedback from multiple people that Apache Infra does not want
> to grant bot accounts write permission to a repository, but I would like to
> confirm back considering that AppVeyor, for example, has a bot account with
> write permission. I would like to check back with a mentor and create an
> Apache Infra ticket to request details and permission.
>
> I would propose to take both approaches at the same time, meaning we can
> start with Chris in the committer AND admin role while trying to get
> permission for a bot account in the meantime.
>
> wdyt?
>
> On Fri, Jan 5, 2018 at 8:21 PM, Chris Olivier <cjolivie...@gmail.com>
> wrote:
>
>> I am fine without a vote unless a vote is required?  Any objections,
>> anyone?  You're sort of adding functionality here, not changing or
>> restricting...  We can always change to Apache later.
>>
>> On Fri, Jan 5, 2018 at 11:18 AM, Marco de Abreu <
>> marco.g.ab...@googlemail.com> wrote:
>>
>> > I'd be in favour of GitHub. Shall we open a vote or would you like me to
>> > create a POC with GitHub first and afterwards we can check if that's
>> > enough?
>> >
>> > -Marco
>> >
>> > On Fri, Jan 5, 2018 at 8:13 PM, Chris Olivier <cjolivie...@gmail.com>
>> > wrote:
>> >
>> > > Apparently Apache supports OATH, so I am open to either.
>> > > Good idea for the docker thing.
>> > >
>> > > On Fri, Jan 5, 2018 at 11:02 AM, Marco de Abreu <
>> > > marco.g.ab...@googlemail.com> wrote:
>> > >
>> > > > GitHub SSO allows the neat feature that login and permission can be
>> > > > selected depending on the access rights a user has to a project.
>> > Somebody
>> > > > with write access (committers) would be get different permissions
>> than
>> > > > somebody with only read access.
>> > > >
>> > > > We could check back with Apache for SSO, but this would involve
>> Apache
>> > > > infra. We could put it up to a vote whether to use GitHub or Apache
>> > SSO.
>> > > >
>> > > > In order to reproduce a build failure we have been thinking about
>> > > changing
>> > > > the ci_build.sh in such a way that it can be run manually without
>> > > Jenkins.
>> > > > The setup I took over binds the Jenkins work directory into the
>> docker
>> > > > containers and uses a few hacks which are hard to reproduce
>> locally. We
>> > > > plan to reengineer this script to make it easier to run manually.
>> > > > But making the AMI public is a good idea! We plan to make the whole
>> > > > infrastructure code (based on Terraform) completely public - at the
>> > > moment
>> > > > it's in a private repository as it contains credentials, but they
>> will
>> > be
>> > > > moved to KMS soon. It would definitely be a good approach to just
>> > supply
>> > > > the AMI so everybody could recreate the environment in their own
>> > account.
>> > > >
>> > > > -Marco
>> > > >
>> > > > Am 05.01.2018 7:51 nachm. schrieb "Chris Olivier" <
>> > cjolivie...@gmail.com
>> > > >:
>> > > >
>> > > > Well, login to the Jenkins server, I would imagine.
>> > > >
>> > > > github or Apache SSO (does Apache support OAUTH?) seems like a good
>> > idea
>> > > as
>> > > > long as there's a way to not let everyone with a github account log
>> in.
>> > > >
>> > > > Access to actual slave machines could be more restricted, I imagine.
>> > > >
>> > > > Eventually, a public current AMI for a build slave would be good in
>> > order
>> > > > to reproduce build or test problems that can't be reproduced
>> locally.
>> > > >
>> > > > wdyt?
>> > > >
>> > > >
>> > > >
>> > > > On Fri, Jan 5, 2018 at 10:41 AM, Marco de Abreu <
>> > > > marco.g.ab...@googlemail.com> wrote:
>> > > >
>> > > > > Would it be an acceptable solution if we add SSO or do you also
>> want
>> > > > access
>> > > > > to the actual AWS account and all machines?
>> > > > >
>> > > > > Yes, the build jobs are automatically getting created for new
>> > branches.
>> > > > >
>> > > > > -Marco
>> > > > >
>> > > > > Am 05.01.2018 7:35 nachm. schrieb "Marco de Abreu" <
>> > > > > marco.g.ab...@googlemail.com>:
>> > > > >
>> > > > > I totally agree, this is not the way it should work in an Apache
>> > > Project.
>> > > > > It's running on an isengard account, meaning it is only accessible
>> > for
>> > > > > Amazon employees. The problem is that a compromised account could
>> > cause
>> > > > > damage up to 170,000$ per day. There are alarms in place to notice
>> > > those
>> > > > > cases, but we still have to be very careful. These high limits
>> have
>> > > been
>> > > > > chosen due to auto scaling being added within the next week's.
>> > > > >
>> > > > > I'd be happy to introduce a committer into the CI process and all
>> the
>> > > > > necessary steps as well as granting them permission. The only
>> > > restriction
>> > > > > being that it has to be and Amazon employee and access to console,
>> > > master
>> > > > > and slave only being possible from the Corp network.
>> > > > >
>> > > > > There is no open ticket. What would you like to request?
>> > > > >
>> > > > > -Marco
>> > > > >
>> > > > >
>> > > > > Am 05.01.2018 7:22 nachm. schrieb "Chris Olivier" <
>> > > cjolivie...@gmail.com
>> > > > >:
>> > > > >
>> > > > > Like John and other mentors were saying, it's not proper for CI to
>> > be a
>> > > > > closed/inaccessible environment.  Is it running on an Isengard
>> > account
>> > > or
>> > > > > in PROD or CORP or just generic EC2?  I think that we should
>> remedy
>> > > this.
>> > > > > It's very strange that no committers have access at all.  Is
>> there a
>> > > > ticket
>> > > > > open to IPSEC?
>> > > > >
>> > > > > On Fri, Jan 5, 2018 at 10:17 AM, Marco de Abreu <
>> > > > > marco.g.ab...@googlemail.com> wrote:
>> > > > >
>> > > > > > Hello Chris,
>> > > > > >
>> > > > > > At the moment this is not possible due Amazon AppSec
>> (Application
>> > > > > security)
>> > > > > > restrictions which does not permit user data and credentials on
>> > these
>> > > > > > machines.
>> > > > > >
>> > > > > > I have been thinking about adding single sign on bound to
>> GitHub,
>> > but
>> > > > we
>> > > > > > would have to check back with AppSec.
>> > > > > >
>> > > > > > Is the reason for your request still the ability to start and
>> stop
>> > > > > running
>> > > > > > builds?
>> > > > > >
>> > > > > > Best regards,
>> > > > > > Marco
>> > > > > >
>> > > > > > Am 05.01.2018 7:11 nachm. schrieb "Chris Olivier" <
>> > > > cjolivie...@gmail.com
>> > > > > >:
>> > > > > >
>> > > > > > Marco,
>> > > > > >
>> > > > > > Are all committers able to get login access to the Jenkins
>> Server?
>> > > If
>> > > > > not,
>> > > > > > why?
>> > > > > >
>> > > > > > -Chris
>> > > > > >
>> > > > >
>> > > >
>> > >
>> >
>>
>
>

Reply via email to