Protezione dell'accesso alle risorse con IAM
Gli utenti e i service account Kubernetes hanno bisogno delle autorizzazioni per gestire le risorse Config Connector. Con Config Connector, il control plane del tuo progetto può essere gestito da identità che utilizzano il controllo degli accessi basato sui ruoli (RBAC) di Kubernetes. Puoi anche fare riferimento ai criteri IAM (Identity and Access Management).
Le risorse che possono fare riferimento a IAMPolicy e IAMPolicyMember sono elencate nel Riferimento alle risorse. Queste risorse hanno la proprietà "Can Be Referenced by IAMPolicy/IAMPolicyMember".
Questo argomento spiega come proteggere l'accesso alle risorse utilizzando Identity and Access Management. Google Cloud
Prima di iniziare
Installa Config Connector sul cluster.
Proteggere l'accesso al control plane con RBAC
In questo esempio, creerai un account di servizio e gli concederai le autorizzazioni per
gestire un PubSubTopic. Questo account di servizio non può gestire altri tipi di
risorse Config Connector.
- Crea un file denominato - pubsub-topic-service-account.yamlcon il seguente contenuto:- apiVersion: v1 kind: ServiceAccount metadata: name: pubsub-topic-service-account namespace: default- Applica questa procedura per creare l'account di servizio - pubsub-topic-service-account:- kubectl apply -f pubsub-topic-service-account.yaml --namespace CC_NAMESPACE - Sostituisci - CC_NAMESPACEcon lo spazio dei nomi da cui Config Connector gestisce le risorse.
- Verifica che - pubsub-topic-service-accountnon possa creare risorse- PubSubTopiccontrollando che l'output del seguente comando contenga- no:- kubectl auth can-i get pubsubtopics --as=system:serviceaccount:default:pubsub-topic-service-account 
- Successivamente, crea un - ClusterRoleche consenta la creazione di argomenti Pub/Sub.- ClusterRole può gestire solo le risorse con valori specificati in - rules.apiGroupse- rules.resources. Per trovare i valori di- apiGroupse- resources, consulta il riferimento per le tue risorse.- Crea un file denominato - pubsub-topic-editor-role.yamlcon i seguenti contenuti:- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: creationTimestamp: null name: pubsub-topic-editor rules: - apiGroups: - pubsub.cnrm.cloud.google.com resources: - pubsubtopics verbs: - get - list - watch - create - update - patch - delete- Applica - pubsub-topic-editor.yamlper creare- ClusterRole:- kubectl apply -f pubsub-topic-editor-role.yaml --namespace CC_NAMESPACE - Sostituisci - CC_NAMESPACEcon lo spazio dei nomi da cui Config Connector gestisce le risorse.
- Successivamente, crea un RoleBinding tra ClusterRole e il tuo account di servizio. Crea un file denominato - pubsub-topic-editor-rolebinding.yamlcon il seguente contenuto:- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: pubsub-topic-editor-rolebinding. subjects: - kind: ServiceAccount name: pubsub-topic-service-account roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: pubsub-topic-editor
- Applica - pubsub-topic-editor-rolebinding.yamlal tuo cluster.- kubectl apply -f pubsub-topic-editor-rolebinding.yaml --namespace CC_NAMESPACE - Sostituisci - CC_NAMESPACEcon lo spazio dei nomi da cui Config Connector gestisce le risorse.
- Verifica che - pubsub-topic-service-accountpossa creare risorse- PubSubTopicconfermando che l'output del seguente comando sia- yes:- kubectl auth can-i get pubsubtopics \ --as=system:serviceaccount:default:pubsub-topic-service-account 
Pulizia
Utilizza kubectl delete per rimuovere il service account, il ruolo IAM e
il RoleBinding.
kubectl delete -f pubsub-topic-editor-rolebinding.yaml --namespace CC_NAMESPACE
kubectl delete -f pubsub-topic-editor-role.yaml --namespace CC_NAMESPACE
kubectl delete -f pubsub-topic-service-account.yaml --namespace CC_NAMESPACE
Sostituisci CC_NAMESPACE con lo spazio dei nomi da cui Config Connector
gestisce le risorse.
Protezione del piano dati con i criteri IAM
In questo esempio, utilizzi le autorizzazioni concesse in precedenza per creare un
PubSubTopic e limitarne l'accesso con una risorsa IAMPolicyMember.
- Crea un file denominato - pubsub-topic-sample.yamlcon i seguenti contenuti:- apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubTopic metadata: name: pubsubtopic-sample- Applica - pubsub-topic-sample.yamlcon- kubectl:- kubectl apply -f pubsub-topic-sample.yaml --namespace CC_NAMESPACE - Sostituisci - CC_NAMESPACEcon lo spazio dei nomi da cui Config Connector gestisce le risorse.
- Crea un file denominato - iampolicymember.yamlcon i seguenti contenuti, sostituendo- EMAIL_ADDRESScon l'indirizzo email del tuo account Google Cloud :- apiVersion: iam.cnrm.cloud.google.com/v1beta1 kind: IAMPolicyMember metadata: name: iampolicymember-sample spec: resourceRef: apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubTopic name: pubsubtopic-sample role: roles/pubsub.admin member: "user:EMAIL_ADDRESS"
- Applica il - iampolicymember.yaml.- kubectl apply -f iampolicymember.yaml --namespace CC_NAMESPACE - Sostituisci - CC_NAMESPACEcon lo spazio dei nomi da cui Config Connector gestisce le risorse.
- Verifica che il criterio sia stato applicato a Google Cloud eseguendo questo comando e cercando il tuo indirizzo email nell'output, sostituendo - PROJECT_IDcon il tuo ID progetto:- gcloud beta pubsub topics get-iam-policy projects/PROJECT_ID/topics/pubsubtopic-sample 
L'accesso agli argomenti Pub/Sub è ora protetto da un IAMPolicyMember.
Pulizia
Utilizza kubectl delete per rimuovere l'argomento Pub/Sub e IAMPolicyMember
dal tuo Google Cloud progetto.
kubectl delete -f iampolicymember.yaml --namespace CC_NAMESPACE
kubectl delete -f pubsub-topic-sample.yaml --namespace CC_NAMESPACE
Passaggi successivi
Utilizza Secret per trasmettere informazioni in modo sicuro alle risorse Google Cloud .