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

Rationalize compute permissions and security model #145

Closed
lukehoban opened this issue Oct 26, 2017 · 4 comments
Closed

Rationalize compute permissions and security model #145

lukehoban opened this issue Oct 26, 2017 · 4 comments
Assignees

Comments

@lukehoban
Copy link
Member

We need to define our security and permissions model both at the general @pulumi/cloud level, and as it needs to be implemented in @pulumi/cloud-aws (and others).

Once we do lock things down more by default, we will also need to define how users who know they are on AWS can open up access explicitly through APIs.

lukehoban added a commit that referenced this issue Oct 26, 2017
We now apply a Role for ECS Tasks using the same policies as our Lambda based compute.

We will need to review these default policies per #145, but for now at least all our compute will be consistent on what it can/can't access.
@mmdriley
Copy link
Contributor

mmdriley commented Nov 2, 2017

Hitting this in the Learning Machine deployment, where we need to give cloud.Service and cloud.Task instances permission for sqs:*.

@mmdriley
Copy link
Contributor

mmdriley commented Nov 2, 2017

@lukehoban thanks so much for adding cloud-aws:config:computeIAMRolePolicyARNs in #150 -- that let me get past this issue in LM!

@mmdriley
Copy link
Contributor

mmdriley commented Nov 2, 2017

Unfortunately, there's no fine-grained manage policy that allows kms:Encrypt and kms:Decrypt. I can create my own as aws.iam.Policy, but I need a way to feed the ARN back into the cloud-aws config.

joeduffy added a commit that referenced this issue Nov 3, 2017
This change exposes a getLoadBalancer function so that callers can
use it when wiring up other AWS infrastructure.  For instance, we
need this in the customer stack to point the CDN at the web stack.

To access it, you can do, for example

    import * as cloud from "@pulumi/cloud";
    import * as awscloud from "@pulumi/cloud-aws";
    let svc = new cloud.Service(...);
    let lb = (svc as awscloud).getLoadBalancer();

I've tried to do this in the most elegant way possible, with the
caveat that this of course needs to be revisited as part of
#145 alongside the other similar things.
joeduffy added a commit that referenced this issue Nov 3, 2017
This change exposes a getLoadBalancer function so that callers can
use it when wiring up other AWS infrastructure.  For instance, we
need this in the customer stack to point the CDN at the web stack.

To access it, you can do, for example

    import * as cloud from "@pulumi/cloud";
    import * as awscloud from "@pulumi/cloud-aws";
    let svc = new cloud.Service(...);
    let lb = (svc as awscloud).getLoadBalancer();

I've tried to do this in the most elegant way possible, with the
caveat that this of course needs to be revisited as part of
#145 alongside the other similar things.
joeduffy added a commit that referenced this issue Nov 3, 2017
This change exposes a getLoadBalancer function so that callers can
use it when wiring up other AWS infrastructure.  For instance, we
need this in the customer stack to point the CDN at the web stack.

To access it, you can do, for example

    import * as cloud from "@pulumi/cloud";
    import * as awscloud from "@pulumi/cloud-aws";
    let svc = new cloud.Service(...);
    let lb = (svc as awscloud).getLoadBalancer();

I've tried to do this in the most elegant way possible, with the
caveat that this of course needs to be revisited as part of
#145 alongside the other similar things.
joeduffy added a commit that referenced this issue Nov 3, 2017
This change exposes a getLoadBalancer function so that callers can
use it when wiring up other AWS infrastructure.  For instance, we
need this in the customer stack to point the CDN at the web stack.

To access it, you can do, for example

    import * as cloud from "@pulumi/cloud";
    import * as awscloud from "@pulumi/cloud-aws";
    let svc = new cloud.Service(...);
    let lb = (svc as awscloud).getLoadBalancer();

I've tried to do this in the most elegant way possible, with the
caveat that this of course needs to be revisited as part of
#145 alongside the other similar things.
@lukehoban lukehoban added this to the 0.11 milestone Feb 8, 2018
@lukehoban lukehoban self-assigned this Feb 8, 2018
@lukehoban lukehoban modified the milestones: 0.11, 0.12 Feb 8, 2018
@lukehoban lukehoban modified the milestones: 0.12, 0.14 Mar 15, 2018
@lukehoban lukehoban modified the milestones: 0.14, 0.16 Apr 20, 2018
@lukehoban lukehoban modified the milestones: 0.16, 0.17 Jul 12, 2018
@lukehoban lukehoban modified the milestones: 0.17, 0.18 Aug 27, 2018
@lukehoban lukehoban modified the milestones: 0.18, 0.19 Sep 13, 2018
@lukehoban lukehoban modified the milestones: 0.19, 0.21 Oct 25, 2018
@lukehoban lukehoban removed this from the 0.21 milestone Jan 28, 2019
@lukehoban
Copy link
Member Author

We will likely more broadly re-consider some of the design approaches in this library - but at this point I don't think we need to track this specific issue by itself.

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

No branches or pull requests

2 participants