Misconfigured Kubeflow workloads are a security risk
“During April, we observed deployment of a suspect image from a public repository on many different clusters. The image is ddsfdfsaadfs/dfsdf:99. By inspecting the image’s layers, we can see that this image runs an XMRIG miner:” Source
Welcome to the cloud …
- Check the running containers: The easiest way to spot an XMRIG miner in a Kubernetes cluster is by checking the running containers. Use the kubectl get pods command to get a list of all the running pods in the cluster. Then, use kubectl logs command to check the logs of each container in the pod for any mention of XMRIG or Monero mining.
- Check resource usage: XMRIG miner consumes a lot of system resources such as CPU and memory. You can use kubectl top command to check the resource usage of each pod in the cluster. If you notice a pod consuming unusually high resources, it might be running an XMRIG miner.
- Check network traffic: XMRIG miner communicates with mining pools over the internet. You can use tools like Wireshark or tcpdump to capture network traffic and analyze it for any connections to known mining pool servers.
- Check for unauthorized access: XMRIG miner can be deployed in a Kubernetes cluster without proper authorization. Check for any unauthorized deployments or changes to the Kubernetes configuration that might indicate an XMRIG
dataflow real time + aggregate
A great way to split up your pipeline based on the urgency of results aggregate-data-with-dataflow
Calling Native Libraries from Java
A couple of options I’ve used and seen:
- Java Native interface - watch out for segfaults!
- Project Panama - early access
- GraalVM - still really new.
- zt-exec - call the native library as an external process
- remotetea - an old favourite if it’s legacy C++ code
Crypto - diy?
To create your own cryptocurrency, you will need to:
- Create a blockchain. This is the underlying technology that will support your cryptocurrency. There are many different blockchain platforms available, such as Ethereum, Bitcoin, and EOS.
- Design your cryptocurrency. This includes deciding on the name, symbol, total supply, and distribution method. You will also need to create a mining algorithm.
- Create a wallet. This is where your cryptocurrency will be stored. There are many different wallets available, both hardware and software.
- Mine your cryptocurrency. This is the process of adding new blocks to the blockchain and earning rewards in the form of your cryptocurrency.
- List your cryptocurrency on an exchange. This will allow people to buy and sell your cryptocurrency.
Here are some of the steps involved in minting your own cryptocurrency:
Google Cloud IAM Madness
After the recent GCP outage related to IAM, I found some odd behaviour with gsutil/gcloud. A script that had faithfully run for many months stopped working with:
ServiceException: 401 Anonymous caller does not have storage.buckets.list access to project xxxx
I tried recreating the service account key used for the operation with no luck. To fix the problem, I had to create a new bucket!
gsutil mb -b on -l us-east1 gs://my-awesome-bucket123ed321/
Creating gs://my-awesome-bucket123ed321/…
gsutil ls
gs://my-awesome-bucket123ed321/
gs://<my_original_bucket_I_couldnt_see>/
BigQuery ML and Vertex AI Generative AI
BigQuery ML and Vertex AI Generative AI (GenAI) are both machine learning (ML) services that can be used to build and deploy ML models. However, there are some key differences between the two services.
- BigQuery ML: BigQuery ML is a fully managed ML service that allows you to build and deploy ML models without having to manage any infrastructure. BigQuery ML uses the same machine learning algorithms as Vertex AI, but it does not offer the same level of flexibility or control.
- Vertex AI Generative AI: Vertex AI Generative AI is a managed ML service that offers a wider range of generative AI models than BigQuery ML. Vertex AI Generative AI also offers more flexibility and control over the ML model training process.
If you are looking for a fully managed ML service that is easy to use, then BigQuery ML is a good option. If you need more flexibility and control over the ML model training process, then Vertex AI Generative AI is a better option.
Cloud Billing Budget API in beta
You can finally set budgets via the API in GCP. This is a huge relief to all those org admins out there who have had to do this manually.
AND, hold on to your hats, there’s terraform support as well!
Looks like Christmas came late….
data "google_billing_account" "account" {
provider = google-beta
billing_account = "000000-0000000-0000000-000000"
}
resource "google_billing_budget" "budget" {
provider = google-beta
billing_account = data.google_billing_account.account.id
display_name = "Example Billing Budget"
amount {
specified_amount {
currency_code = "USD"
units = "100000"
}
}
threshold_rules {
threshold_percent = 0.5
}
}
Flink Kubernetes operators
How I wish these operators had existed a few years ago when I was setting up Flink…
https://github.com/GoogleCloudPlatform/flink-on-k8s-operator
https://www.ververica.com/blog/google-cloud-platforms-flink-operator-for-kubernetes