[openstack-dev] [nova][keystone] auth for new metadata plugins
Adam Young
ayoung at redhat.com
Thu Sep 1 01:55:29 UTC 2016
On 08/30/2016 05:36 PM, Michael Still wrote:
> Sorry for being slow on this one, I've been pulled into some internal
> things at work.
>
> So... Talking to Matt Riedemann just now, it seems like we should
> continue to pass through the user authentication details when we have
> them to the plugin. The problem is what to do in the case where we do
> not (which is mostly going to be when the instance itself makes a
> metadata request).
>
> I think what you're saying though is that the middleware wont let any
> requests through if they have no auth details? Is that correct?
>
Yes, that is correct.
> Michael
>
>
>
>
> On Fri, Aug 26, 2016 at 12:46 PM, Adam Young <ayoung at redhat.com
> <mailto:ayoung at redhat.com>> wrote:
>
> On 08/22/2016 11:11 AM, Rob Crittenden wrote:
>
> Adam Young wrote:
>
> On 08/15/2016 05:10 PM, Rob Crittenden wrote:
>
> Review https://review.openstack.org/#/c/317739/
> <https://review.openstack.org/#/c/317739/> added a new
> dynamic
> metadata handler to nova. The basic jist is that
> rather than serving
> metadata statically, it can be done dyamically, so
> that certain values
> aren't provided until they are needed, mostly for
> security purposes
> (like credentials to enroll in an AD domain). The
> metadata is
> configured as URLs to a REST service.
>
> Very little is passed into the REST call, mostly UUIDs
> of the
> instance, image, etc. to ensure a stable API. What
> this means though
> is that the REST service may need to make calls into
> nova or glance to
> get information, like looking up the image metadata in
> glance.
>
> Currently the dynamic metadata handler _can_ generate
> auth headers if
> an authenticated request is made to it, but consider
> that a common use
> case is fetching metadata from within an instance
> using something like:
>
> % curl
> http://169.254.169.254/openstack/2016-10-06/vendor_data2.json
> <http://169.254.169.254/openstack/2016-10-06/vendor_data2.json>
>
> This will come into the nova metadata service
> unauthenticated.
>
> So a few questions:
>
> 1. Is it possible to configure paste (I'm a relative
> newbie) both
> authenticated and unauthenticated requests are
> accepted such that IF
> an authenticated request comes it, those credentials
> can be used,
> otherwise fall back to something else?
>
>
>
> Only if they are on different URLs, I think. Its
> auth_token middleware
> for all services but Keystone. Keystone, the rles are
> similar, but the
> implementation is a little different.
>
>
> Ok. I'm fine with the unauthenticated path if the service we
> can just create a separate service user for it.
>
> 2. If an unauthenticated request comes in, how best to
> obtain a token
> to use? Is it best to create a service user for the
> REST services
> (perhaps several), use a shared user, something else?
>
>
>
> No unauthenticated requests, please. If the call is to
> Keystone, we
> could use the X509 Tokenless approach, but if the call
> comes from the
> new server, you won't have a cert by the time you need to
> make the call,
> will you?
>
>
> Not sure which cert you're referring too but yeah, the
> metadata service is unauthenticated. The requests can come in
> from the instance which has no credentials (via
> http://169.254.169.254/).
>
> Shared service users are probably your best bet. We can
> limit the roles
> that they get. What are these calls you need to make?
>
>
> To glance for image metadata, Keystone for project information
> and nova for instance information. The REST call passes in
> various UUIDs for these so they need to be dereferenced. There
> is no guarantee that these would be called in all cases but it
> is a possibility.
>
> rob
>
>
> I guess if config_drive is True then this isn't really
> a problem as
> the metadata will be there in the instance already.
>
> thanks
>
> rob
>
> __________________________________________________________________________
>
>
> OpenStack Development Mailing List (not for usage
> questions)
> Unsubscribe:
> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>
>
>
>
>
> __________________________________________________________________________
>
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe:
> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>
>
>
>
> __________________________________________________________________________
>
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe:
> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>
>
>
> Sounded like you had this sorted. True?
>
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe:
> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>
>
>
>
>
> --
> Rackspace Australia
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20160831/5359b1ff/attachment.html>
More information about the OpenStack-dev
mailing list