AWS IAM 基本概念介绍
序使用角色使用角色委托权限不共享访问密钥定期轮换凭证删除不需要的凭证使用策略条件来增强安全性监控 AWS 账户中的活动关于 IAM 最佳实践的视频演示 User Group Role Temporary Security Credentials Permissions Policies 目录...阅读全文
序使用角色使用角色委托权限不共享访问密钥定期轮换凭证删除不需要的凭证使用策略条件来增强安全性监控 AWS 账户中的活动关于 IAM 最佳实践的视频演示 User Group Role Temporary Security Credentials Permissions Policies 目录...阅读全文
文件的偏移的组合. PG的位点概念对于物理流复制和逻辑流复制是统一的. 1) PG对应逻辑 slot 的位点信息保存在数据库端,具有断点续传特性. 2) 除非需要跳过某部分数据,则使用 0/0 去请求拉取对应 slot 的逻辑日志. 3) PG的位点不对应时间点. 对于客户端,在建立连接后,读到的增量信息以消息的形式出现,可以分为三类信息 1) 事务开始,begin 2) 事务结束,commit 3) 事务中单个表的变化信息,分为 a) insert b) update c) delete 根据表 REPLICA 的状态不同,各类DML收到的信息略有变化. ## 五:编译和使用 ### 1 编译 1 编译机上下载安装 PG94 或更高版本的二进制,或用源码安装. 2 使用软链接或别的方式,把...阅读全文
: fmt.Printf("send message: %d\n", <-messages) } } }(ctx) defer close(messages) defer cancel() select { case <-ctx.Done(): time.Sleep(1 * time.Second) fmt.Println("main process exit!") } } 这个例子中,只要让子线程监听主线程传入的ctx,一旦ctx.Done()返回空channel,子线程即可取消执行任务。但这个例子还无法展现context的传递取消信息的强大优势。阅读过net/http包源码的朋友可能注意到在实现http server时就用到了context, 下面简单分析一下。1、首先Server在开启服务时会创建一个...阅读全文
#TTYPath=/dev/console MaxLevelStore=warning MaxLevelSyslog=warning MaxLevelKMsg=warning MaxLevelConsole=info #MaxLevelWall=emerg #LineMax=48K 配置目录及其优先级 默认设置是在编译期间确定的, 所以仅在确实需要修改默认设置的情况下, 才需要使用配置文件。位于 /etc/systemd/ 目录中的初始配置文件, 仅包含了展示选项默认值的注释, 目的在于方便系统管理员查看和直接修改。 如果软件包想要自定义某些默认设置, 那么必须将自定义的配置文件安装到 /usr/lib/systemd/*.conf.d/ 目录中。 /etc/ 目录仅供系统管理员使用。 系统管理员可以利用...阅读全文
双因子身份验证就是指,需要两种身份验证才能完成账号有效性的验证,可以是密码、SSH 密钥,也可以是第三方服务,比如 Google Authenticator。这意味着单个验证方式的缺陷,不会影响账号的安全。本文我们将介绍如何在 Debian 服务器上启用双因子验证。 请注意,本文涉及到多次修改 SSH 配置,当你修改配置时,请确保有至少两个到服务器终端的连接。打开的终端将一直保持,即便 SSH 服务重启。第二终端意味着你可以修复你在SSH配置的错误。 密钥和密码验证的SSH SSH 支持对登录要求不止一个身份验证方法,我们首先启用密钥和密码验证。 在 /etc/sh/sshd_config 中的 SSH 服务器配置文件中的 AuthenticationMethods 选项中设置了身份验证方...阅读全文
同一台主机,同样的workload,kubelet 中配置CPU绑定后的性能变化: 绑核的配置放在 /etc/kubernetes/kubelet 中的这两行: ``` FEATURE_GATES="--feature-gates=CPUManager=true" CPU_MANAGER_POLICY="--cpu-manager-policy=static" ``` 绑核前: ``` procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in...阅读全文
。Blackbox Exporter 最重要的功能之一是测量 Endpoint 的可用性。 当然, Blackbox Exporter 探测 HTTPS 后就可以获取到证书的相关信息, 就是利用这种方式实现对 Kubernetes apiserver 证书过期时间的监控. 配置步骤 调整 Blackbox Exporter 的配置, 增加 insecure_tls_verify: true, 如下: 重启 blackbox exporter: kubectl rollout restart deploy ... 增加对 Kubernetes APIServer 内部端点https://kubernetes.default.svc.cluster.local/readyz的监控. 如果你没有使用...阅读全文
玲珑,面面俱到 作为一个开发者,你很可能希望为开源项目解决一个特定的痛点。或许你想要运行在一个目前还不支持的系统上,抑或你很希望改革社区目前使用的安全技术。想要引进新技术,特别是比较有争议的技术,最好的办法就是让人无法拒绝它。你需要透彻地了解底层代码,考虑每个极端情况。在不影响已实现功能的前提下增加新功能。不仅仅是完成就行,还要在特性的完善上下功夫。 糜不有初,鲜克有终 开源社区也有许多玩玩就算的人,但是承诺了就不要轻易失信。不要就因为提交被拒就离开社区。找出原因,修正错误,然后再试一试。当你开发时候,要和整个代码库保持一致,确保即使项目发生变化而你的补丁仍然可用。不要把你的代码留给别人修复,要自己修复。这样可以在社区形成良好的风气,每个人都自己改。 这些“潜规则”看上去很简单,但是还是有许...阅读全文
ATOM feeds 使用 Django,你可以通过创建一个简单的Python类来快速创建 RSS 和 ATOM feeds。 在数据库中自动创建表 如果你的数据库中缺失了某一个表,你可以通过执行 Django 的迁移命令来自动创建它。 容易的数据迁移 数据迁移是 Django 中最有用的功能之一。通过使用 Django 的迁移方法,你可以在短时间内改变一个数据库模式。同样也容易就能跟踪你的数据库模式和相关的改变。为数据迁移所做的命名能够帮助你进行版本控制,还有很多选项可以用来合并版本和进行修改。 安全性 Django非常安全,该框架默认情况下可以防止 XSS 攻击、CSRF 攻击,SQL 语句注入、点击劫持、用户管理、cookies、邮件标头注入、密码攻击、目录遍历攻击等等。 Django有一个...阅读全文
Channel 1. 概述 “网络,并发”是Go语言的两大feature。Go语言号称“互联网的C语言”,与使用传统的C语言相比,写一个Server所使用的代码更少,也更简单。写一个Server除了网络,另外就是并发,相对python等其它语言,Go对并发支持使得它有更好的性能。 Goroutine和channel是Go在“并发”方面两个核心feature。 Channel是goroutine之间进行通信的一种方式,它与Unix中的管道类似。 Channel声明: ChannelType = ( "chan" | "chan" "<-" | "<-" "chan" ) ElementType . 例如: var ch chan int var ch1 chan<- int //ch1只能写...阅读全文
,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 56:7b:98:07:30:bc brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 192.168.134.93/27 brd 192.168.134.95 scope global eth0 valid_lft forever preferred_lft forever 通过内网 IP 地址,我们得知已成功进入容器内部。 原理 namespace namespace 是 Linux 中一些进程的属性的作用域,使用命名空间,可以隔离不同的进程。 Linux在不断的添加命名空间,目前有: mount:挂载命名空间,使...阅读全文
influxdb在内存中引入了大量文件,在内存充足时,会占用较多的空间,用于提高程序读取性能。5.SMP与NUMA?cpu硬件体系架构可以分为:SMP(Symmetric Multi-Processor)/UMA(Uniform Memory Access)模式SMP架构,所有的CPU争用一个总线来访问所有内存,优点是资源共享,而缺点是总线争用激烈。 实验证明,SMP服务器CPU利用率最好的情况是2至4个CPUNUMA(Non-Uniform Memory Access)模式NUMA架构引入了node和distance的概念。对于CPU和内存这两种最宝贵的硬件资源, NUMA用近乎严格的方式划分了所属的资源组(node),而每个资源组内的CPU和内存是几乎相等。在influxdb服务器上,查看当前cpu及...阅读全文
,这是系列博客的第一篇,深入探讨Docker对namespace技术的应用。 Namespaces 在第一部分,我会在文章中讨论Docker在使用Linux namespace时,如何创建Linux namespace。在之后的博客中我们会讨论namespace如何与其它特性如cgroups和隔离的文件系统相结合,去实现更多有用的功能。 从根本上说,namespace是Linux系统的底层概念,有一些不同类型的命名空间被部署在核内。跟踪docker run -it --privileged --net host crosbymichael/make-containers这段代码,我们就可以深入到每个不同的namespace。开始会有一些预加载文件和配置。尽管我们也会在用Docker为我们运行的...阅读全文
HOSTNAME=nginx-test-2 DB_PORT=6379 HOME=/root PKG_RELEASE=1~stretch TERM=xterm KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1 NGINX_VERSION=1.17.1 ...... PWD=/ TZ=Asia/Shanghai # date Sun Jul 7 12:17:26 CST 2019 可以看到,该 Namespace 下的两个 Pod 都成功注入了配置信息,时区也改过来了,是不是很方便了。不过,如果想指定该 Namespace 下某个 Pod 不使用该 PodPreset 该如何配置呢?毕竟有些个性化的 Pod 不使用通用配置。我们可以配置...阅读全文
注释,后面的Entity表示该注释的名称。 注释的元素 一个注释可以包含多个可以被赋值的元素。一个元素就像是一个属性或者参数。下面是一个包含一个元素的注释 @Entity(tableName = "vehicles") 元素紧跟在注释之后,并放置在圆括号中,没有元素的注释,不需要圆括号。注释可以包含多个元素,当只包含一个元素时,可以省略元素名,只提供元素值既可,如下: @InsertNew("yes") 注释的位置 你可以将注释放置到类、接口、方法、方法参数、成员变量、局部变量之前。下面是一个将注释放到类之前的例子: @Entity public class Vehicle { } 下面是一个更大的例子,演示了在类、成员变量、方法、参数以及局部变量之前添加注释。仅作演示之用,并没有什么特别的...阅读全文
过 iptables 实现 IP 端口数据包转发服务配置关于 NAT VPS 的使用说明NAT VPS 的正确食用方式NAT VPS 主机端口转发(流量中转)教程国内中转高性价比方案:NAT VPS + iptables 端口流量转发通过国内服务器转发流量Ubuntu UFW 防火墙设置Setup a Shadowsocks relay在 Azure 搭建 ShadowSocks 国内跳板,并开启 UDP 转发UFW Essentials: Common Firewall Rules and CommandsHow To Setup a Firewall with UFW on an Ubuntu and Debian Cloud ServerConfigure Uncomplicated...阅读全文
某最后一次部署挖矿脚本后,百度通过安全管理监控系统发现大量服务器运行异常,占用公司服务器的运算资源执行了挖矿程序,经过一番排查,最终确定了幕后的操盘手“安某”。 为此,百度还花费 2.7 万元请北京耐特网科技公司提供了应急服务,具体项目包括样本提取、样本分析、服务器日志提取并分析、追踪溯源、报告编写等。 2018 年 7 月,百度正式起诉“安某”,认为其犯有非法控制计算机信息系统罪。经法院的进一步核实,被告人“安某”虽对其行为性质提出辩解,但其到案后及在庭审过程中对其实施的作案过程均能如实交代,故应认定其具有如实供述的情节,同时结合其能退缴涉案违法所得,故可对其从轻处罚。 据此判决: 一、被告人安邦犯非法控制计算机信息系统罪,判处有期徒刑三年,罚金人民币一万一千元。 二、在案扣押的人民币十一...阅读全文
,以避免出现代码丢失等问题。在切换分支的时候,我们需要确保其他人都知道这个操作,并且保证他们的代码状态是干净的。六、SVN切换分支的优缺点在软件开发中,我们需要经常进行分支管理,因此,SVN的分支管理功能就显得尤为重要了。下面我们来看一下,SVN切换分支的优缺点。1. 优点SVN切换分支的最大优点就是方便快捷。通过SVN我们可以很方便地将工作副本切换到不同的分支,这样可以让我们更加高效地进行代码管理和开发工作。此外,SVN还提供了完善的分支合并机制,可以帮助我们更好地保持代码的稳定性。2. 缺点SVN的缺点主要体现在以下几个方面:(1)SVN对源代码有一定的限制;(2)SVN操作过程较为繁琐;(3)SVN的并发处理能力相对较差。七、总结综上所述,SVN切换分支是一项非常重要的基础操作,在软件开...阅读全文
。比如它的线程优先级太低,而高优先级的线程不断抢占它所需的资源,导致低优先级资源无法工作。 3、活锁的情况是线程一种非常有趣的情况,在生活中我们可能会碰到这样的情况,那就是出门的时候可能会遇到有人要进门,你打算让他先进门,他又打算让你先出门,结果,两个人都互相退后了,然后你打算先出门时对方也向前一步,来来回回就一直卡在门口。当然,这种事情正常人很快就能解决,但如果是线程碰到就没那么幸运了。 如果两个线程占用着公共的资源,并且秉承着 “谦让” 的原则,主动把资源让给他人使用,你让我也让,这样就造成资源在两个线程间不断跳动但线程之间都拿不到资源的情况,这样的情况就是活锁了。 线程安全 线程安全指的是多线程的安全。如果一段程序可以保证被多线程访问后仍能保持正确性,那么程序就是线程安全的。一般来说,线...阅读全文
内容,请查阅GitLab Runner。 缓存key GitLab Runner v1.0.0 开始引入。 key指令允许我们定义缓存的作用域(亲和性),可以是所有jobs的单个缓存,也可以是每个job,也可以是每个分支或者是任何你认为合适的地方。 它也可以让你很好的调整缓存,允许你设置不同jobs的缓存,甚至是不同分支的缓存。 cache:key可以使用任何的预定义变量。 默认key是默认设置的这个项目缓存,因此默认情况下,每个pipelines和jobs中可以共享一切,从GitLab 9.0开始。 配置示例 缓存每个job: cache: key: "$CI_JOB_NAME" untracked: true 缓存每个分支: cache: key...阅读全文
cgroup 节点可以包含零或多个子节点,子节点继承父节点的属性。整个系统可以有多个hierarchy。 配置示例 docker run -d --cpus=0.1 --memory=100MB busybox 1 2 3 4 5 root@lxkaka-server:/sys/fs/cgroup/cpu/docker/ee43bb16af9947ed9e8498ad42c859318e001365043e4cda410f68b4a0d79378# cat cpu.cfs_quota_us 10000 root@lxkaka-server:/sys/fs/cgroup/memory/docker...阅读全文