teleport identity file
January 26, 2025 by walter
When you run the command: tsh login –user=api-user –out=identity-file the identity file is generated by Teleport (tsh), and it contains the user’s credentials used for authentication in Teleport’s environment. The content of this file is not just a simple X.509 certificate, but a set of credentials, which includes several components necessary for mTLS (mutual TLS) […] →Read more
teleport 中 tbot 与 teleport cluster 的安全通信
January 26, 2025 by walter
1. 证书签名过程概述 当 tbot 请求证书时,它与 Teleport 集群的 Auth Service 交互: 私钥生成: tbot 本地生成自己的私钥和公钥(通常使用 Elliptic Curve 或 RSA 算法)。 这对密钥仅存储在 tbot 的环境中,私钥不会发送到 Teleport 集群。 CSR(Certificate Signing Request)生成: tbot 使用生成的公钥创建一个 CSR(证书签名请求),并将其发送到 Teleport 集群的 Auth Service。 CSR 包含: 公钥 证书用途(如 SSH、Kubernetes、数据库等) tbot 的身份信息(例如角色、用户名等) CA 签名: Teleport 集群的 Auth Service 验证 tbot 的身份(基于 token 或已有证书)。 一旦认证通过,Auth Service 使用 Teleport […] →Read more
HTTP 2 协议简介
January 26, 2025 by walter
好的!下面我将详细讲解 HTTP/2 协议的核心内容、主要特性以及它为什么对现代网络通信(特别是 gRPC)非常重要。 什么是 HTTP/2? HTTP/2 是 HTTP/1.1 的下一代版本,发布于 2015 年,是由 IETF 开发的一个标准协议(RFC 7540)。它的目标是解决 HTTP/1.1 的性能瓶颈,尤其是在高延迟、高带宽环境下提高数据传输效率。 HTTP/2 的主要创新点包括: 二进制分帧:替代了 HTTP/1.1 的基于文本的格式。 多路复用:允许在同一连接上同时发送多个请求和响应。 头部压缩:减少了 HTTP 报文头的开销。 服务器推送:服务端可以在客户端请求之前主动推送资源。 HTTP/2 的核心特性 1. 二进制协议 HTTP/1.1 是基于纯文本的协议,这种格式虽然易读,但在传输效率上存在劣势。 HTTP/2 使用 二进制分帧 的方式,将所有数据封装为二进制帧,解析更高效。 帧(Frame) 是 HTTP/2 的最小通信单位,所有 HTTP 数据(如头部、数据体等)都会被分成帧并传输。 2. 多路复用(Multiplexing) 在 HTTP/1.1 中,每个请求需要单独的 TCP 连接,或者复用连接时必须按顺序完成,导致“队头阻塞”问题。 HTTP/2 允许在一个 TCP 连接上并行发送多个请求和响应: 每个请求和响应由一个或多个帧组成,这些帧可以交错(Interleave)传输。 […] →Read more
用 Kotlin 的 DSL(领域特定语言)来定义构建脚本
January 26, 2025 by walter
Kotlin DSL 是 Gradle 提供的一种基于 Kotlin 的构建脚本语言,与传统的 Groovy 脚本相比,Kotlin DSL 提供了更好的类型安全和智能提示支持。以下是用 Kotlin DSL 定义一个 Java 项目的构建脚本的详细指南。 项目结构 Gradle 使用 Kotlin DSL 的项目结构与 Groovy DSL 相似,区别在于构建脚本的文件名是 build.gradle.kts(而不是 build.gradle)。 目录结构: project/ ├── build.gradle.kts // Kotlin DSL 构建脚本 ├── settings.gradle.kts // 项目配置文件 ├── src/ │ ├── main/ │ │ ├── java/ // Java 源代码 │ └── test/ │ […] →Read more
Gradle 简介
January 26, 2025 by walter
Gradle 是一种强大的构建工具,广泛应用于 Java、Kotlin、Groovy、Android 等生态系统。它以 声明性 和 灵活性 著称,使用基于 Groovy 或 Kotlin 的 DSL(领域特定语言)来定义构建脚本。 Gradle 可以用于以下任务: • 编译代码 • 运行测试 • 打包应用程序 • 管理依赖 • 部署应用 快速入门 安装 Gradle • 手动安装: 下载 Gradle:https://gradle.org/releases/ 解压后配置环境变量 GRADLE_HOME 和 PATH。 • 使用包管理器: • MacOS: brew install gradle • Ubuntu: sudo apt install gradle • Windows: 使用 choco install gradle […] →Read more
Kotlin 快速入门
January 26, 2025 by walter
基础学习 1.1 安装开发环境 Kotlin 的开发环境非常灵活: • 推荐工具:IntelliJ IDEA 下载社区版即可:https://www.jetbrains.com/idea/download/ • 创建新项目时选择 Kotlin/JVM 模板即可开始。 • 在线编译器:Kotlin Playground 无需安装工具,直接访问 https://play.kotlinlang.org/ 在线运行 Kotlin 代码。 • Android 开发:Android Studio 如果目标是 Android 开发,可以使用 Android Studio,它对 Kotlin 有良好的支持。 1.2 学习语言基础 Kotlin 的语法直观、简洁,可以通过以下内容快速掌握语言基础: • Hello, World! fun main() { println("Hello, World!") } • 变量声明 val name: String = "Kotlin" // 不可变变量 var […] →Read more
如何制作一面自己的魔镜 MagicMirror
January 25, 2025 by walter
一、准备工作 1. 硬件准备 树莓派(推荐 Raspberry Pi 4 或更新版本) 需要配备 SD 卡(至少 8GB,推荐 16GB 或更大),用于安装系统。 显示器 普通的电脑显示器或平板显示器即可,大小根据需求选择。 双向镜子(Two-Way Mirror) 这种镜子既可以反射光线又允许屏幕后面的内容透过。可以从网上购买或者找本地玻璃店定制。 其他工具 HDMI 线:用于连接显示器与树莓派。 电源适配器:为树莓派供电。 框架:用于固定镜子和显示器(可以是木框、金属框等)。 二、安装和配置 MagicMirror 软件 1. 安装树莓派操作系统 下载 Raspberry Pi Imager。 将树莓派操作系统(Raspberry Pi OS)写入 SD 卡。 插入树莓派,接入电源、显示器、键盘鼠标,完成系统的初始配置(语言、WiFi 等)。 2. 安装 MagicMirror² 打开树莓派终端,运行以下命令安装 MagicMirror²: bash -c “$(curl -sL https://raw.githubusercontent.com/MichMich/MagicMirror/master/installers/install.sh)” 安装完成后,MagicMirror 的默认文件将位于 ~/MagicMirror 目录。 3. […] →Read more
Databricks and Superset
January 22, 2025 by walter
Databricks Databricks 是一个基于云的统一数据分析平台,专为大规模数据处理、数据科学、机器学习和数据工程设计。它由 Apache Spark 的创始团队创建,旨在使大规模数据分析更加简单、高效和协作。 主要特点 多用途平台: 支持数据工程、数据科学和数据分析。 提供 ETL(提取、转换、加载)、数据探索、机器学习模型训练和部署等功能。 统一的数据管理: 支持处理结构化和非结构化数据。 与数据湖和数据仓库集成(例如 Delta Lake)。 高效的计算引擎: 使用优化的 Apache Spark 引擎以处理大规模数据。 提供自动化优化和动态分区管理。 协作功能: 提供笔记本(Notebook)环境,支持 Python、R、Scala 和 SQL。 支持团队协作和实时共享工作结果。 多云支持: 可部署在主流云平台上(如 AWS、Azure 和 Google Cloud)。 安全性和可扩展性: 提供数据加密、用户访问控制和审计功能。 应用场景 数据湖分析:用于数据清洗、转换和分析。 机器学习:训练和部署模型。 数据集成:将不同来源的数据集成到统一的平台。 BI 和报表支持:与 BI 工具集成(如 Tableau、Power BI 和 Superset)。 Apache Superset Apache Superset 是一个开源的商业智能(BI)平台,用于交互式数据可视化和仪表盘构建。它提供了一个用户友好的界面,允许用户从各种数据源中提取数据并创建图表和仪表盘。 主要特点 直观的界面: […] →Read more
how to use teleport bot to issue certificate and save it into aws secret manager?
January 21, 2025 by walter
To use Teleport (a popular tool for secure access to infrastructure) to issue a certificate and save it into AWS Secrets Manager, follow these steps: Prerequisites: Teleport Setup: Ensure you have Teleport installed and configured. A Teleport bot must be running and properly authenticated to issue certificates. AWS CLI: Ensure the AWS CLI is installed […] →Read more
what’s the difference between AWS role permission policies and trust entities?
January 21, 2025 by walter
In AWS Identity and Access Management (IAM), role permission policies and trust entities serve distinct but complementary purposes: 1. Permission Policies Definition: Permission policies define what actions an IAM role can perform on specific AWS resources. Scope: These policies are attached to the role itself and specify the permissions granted to anyone or anything assuming […] →Read more