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

k8s quickstart client not able to get SVID #123

Open
JaminenB opened this issue Sep 15, 2023 · 0 comments
Open

k8s quickstart client not able to get SVID #123

JaminenB opened this issue Sep 15, 2023 · 0 comments

Comments

@JaminenB
Copy link

JaminenB commented Sep 15, 2023

Ran through the quickstart with k8s setup. Using the initial values provided (kept example.org trust domain and everything). No changes or updates made to the repo after cloning. When it came time to apply client-deployment.yaml it had problems receiving it's SVID which drove me bonkers because everything was copypasta. This is the error I received when the client workload came online from the pod logs:
rpc error: code = PermissionDenied desc = no identity issued

Eventually, I checked the spire-server-0 logs just to see what the problem could be and came across the client deployment selectors and failure (to make things easier to view I put each selector type on a new line):

time="2023-09-15T05:42:03Z" level=debug msg="PID attested to have selectors" pid=3149843 selectors="[
type:\"unix\" value:\"uid:0\" 
type:\"unix\" value:\"gid:0\" 
type:\"unix\" value:\"supplementary_gid:0\" 
type:\"k8s\" value:\"sa:default\" 
type:\"k8s\" value:\"ns:spire\" 
type:\"k8s\" value:\"node-name:aks-default-xxxxxx\" 
type:\"k8s\" value:\"pod-uid:xxxxx-xxxxx-xxxx\" 
type:\"k8s\" value:\"pod-name:client-98d8b6bfb-6fnt7\" 
type:\"k8s\" value:\"pod-image-count:1\" 
type:\"k8s\" value:\"pod-init-image-count:0\" 
type:\"k8s\" value:\"pod-image:ghcr.io/spiffe/spire-agent@sha256:xxxxxx\"
type:\"k8s\" value:\"pod-image:ghcr.io/spiffe/spire-agent:1.5.1\" 
type:\"k8s\" value:\"pod-label:pod-template-hash:98d8b6bfb\" 
type:\"k8s\" value:\"pod-label:app:client\" 
type:\"k8s\" value:\"pod-owner:ReplicaSet:client-98d8b6bfb\" 
type:\"k8s\" value:\"pod-owner-uid:ReplicaSet:xxxxxx-xxxxx-xxxx\" 
type:\"k8s\" value:\"container-name:client\" 
type:\"k8s\" value:\"container-image:ghcr.io/spiffe/pire-agent@sha256:xxxxxxxxxx\" 
type:\"k8s\" value:\"container-image:ghcr.io/spiffe/spire-agent:1.5.1\"]" 
subsystem_name=workload_attestor

time="2023-09-15T05:42:03Z" level=error msg="No identity issued" method=FetchX509SVID pid=3149843 
registered=false service=WorkloadAPI subsystem_name=endpoints

From the above log output the two selectors of importance to the quickstart are type:\"k8s\" value:\"sa:default\" and type:\"k8s\" value:\"ns:spire\".

Here is the entry command provided by the quickstart:

kubectl exec -n spire spire-server-0 -- \
    /opt/spire/bin/spire-server entry create \
    -spiffeID spiffe://example.org/ns/default/sa/default \
    -parentID spiffe://example.org/ns/spire/sa/spire-agent \
    -selector k8s:ns:default \
    -selector k8s:sa:default

This shows one of the selectors to be k8s:ns:default but it should be k8s:ns:spire instead. After creating a new entry with that change, the client was able to get an SVID:

kubectl exec -n spire spire-server-0 -- \
    /opt/spire/bin/spire-server entry create \
    -spiffeID spiffe://example.org/ns/default/sa/default \
    -parentID spiffe://example.org/ns/spire/sa/spire-agent \
    -selector k8s:ns:spire \ <-------- CHANGE MADE HERE
    -selector k8s:sa:default

Now we can see the container get it's SVID:

$kubectl exec -it $(kubectl get pods -o=jsonpath='{.items[0].metadata.name}' \
   -l app=client)  -- /opt/spire/bin/spire-agent api fetch -socketPath /run/spire/sockets/agent.sock

rpc error: code = PermissionDenied desc = no identity issued
rpc error: code = PermissionDenied desc = no identity issued
rpc error: code = PermissionDenied desc = no identity issued
rpc error: code = PermissionDenied desc = no identity issued
rpc error: code = PermissionDenied desc = no identity issued
rpc error: code = PermissionDenied desc = no identity issued
Received 1 svid after 9h29m5.086759695s

SPIFFE ID:              spiffe://example.org/ns/default/sa/default
SVID Valid After:       2023-09-15 15:10:33 +0000 UTC
SVID Valid Until:       2023-09-15 16:10:43 +0000 UTC
CA #1 Valid After:      2023-09-15 05:38:38 +0000 UTC
CA #1 Valid Until:      2023-09-16 05:38:48 +0000 UTC

Suggestion to edit the provided entry create command in the quickstart k8s portion to include the correct selector k8s:ns:spire.

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

1 participant