2017年2月24日 星期五

AWS 開放對 On-Premises AD 對 AWS service 的 Multi-Factor

AWS 在部落格發了一篇可以對 AWS service 進行 MFA 驗證,而且還能夠透過 AWS AD 和 On-Premises AD 進行 trust 讓內部的 RADIUS Server 來驗證,這對於許多因為安全性 and 稽核因素而無法上雲端的企業更增添了上雲端的理由,由這幾年 AWS 的演進其實大大的加強了在安全方面。
How to Enable Multi-Factor Authentication for AWS Services by Using AWS Microsoft AD and On-Premises Credentials

 

AWS 什麼沒有就是文件很多,所以文中也寫了如何用 AD trust 來跑 WorkSpeaces 的 MFA 驗證



 

AWS 除了在雲上做的好,連混合雲幾乎都快無縫接軌了。

 

Orignal From: AWS 開放對 On-Premises AD 對 AWS service 的 Multi-Factor

2017年2月22日 星期三

AWS CLI 新舊版本的差異

為什麼會寫這一篇?是因為小弟最近在 AWS CLI 踩了很大一個坑,所以怒寫一篇文章 ...

 

AWS 的服務其實隨時隨地都在版本更新,你可能用到一半發現和你隔壁的不太一樣,很有可能就是 AWS 在版更

或是 AWS CLI 和文件寫的不一樣 ... 這就是我在 AWS CLI 踩的坑 !!

 

事情的緣由是小弟在跑 AWS CodeDeploy for On-Premises 的過程中,有一個動作是要產生 sts session
For example:

aws deploy register-on-premises-instance --instance-name name-of-instance --iam-session-arn arn:aws:sts::account-id:assumed-role/role-to-assume/session-name

2017年2月16日 星期四

在 Ubuntu 16.04 中 chkconfig 的替代品 (非sysv-rc-conf)

今天有人問到在 CentOS 中常用的 chkconfig 在 Ubuntu 的話換成什麼了?!

 

網路上有蠻多都推薦用 sysv-rc-conf 這個工具來用,但是對於管理來說非標準的東西如果要自動化就會多一份工,然後到了新公司被灌輸了一個概念就是,有標準的東西就用標準的,盡量避免使用非標準的工具。

 

回歸正提,在 Ubuntu 都是使用 systemctl 去管理 service,其實 systemctl 也可以有 chkconfig 功能的參數
$ systemctl list-units

 

用 systemctl 列出的資料更多了,但比較不好查看,如果能利用 grep 就不會有這些問題了。

 

 

Orignal From: 在 Ubuntu 16.04 中 chkconfig 的替代品 (非sysv-rc-conf)

2017年2月13日 星期一

AWS 用 CLI 動態修改 EC2 的 Role

AWS 在 2/9 的時候在 Blog 發表在 EC2 上終於可以動態修改 IAM Role 了!! 相信有在使用 AWS 的人一定都遇過在開啟 EC2 後忘記加 Role 之後又重開 EC2 的窘境 (根本常常上演
New! Attach an AWS IAM Role to an Existing Amazon EC2 Instance by Using the AWS CLI

雖然這次僅有開放 CLI 使用,但這已經夠好用了,不用再浪費過多的時間在重啟 EC2 上,AWS 在文中提到這次更新可以在 EC2 原本沒有 Role 的情況下加入 Role,還能夠改變 EC2 的 Role 角色

用 AWS CLI 建立 IAM Role

在 AWS Web console 可以很方便的替你完成許多事情,但是如果今天你需要自動化 or 系統化的管理就需要用到 AWS CLI,更何況有些功能是在 Web console 裡面所找不到的。

 

用 AWS CLI 建立 IAM Role

首先先建立一個 EC2 type 的 Role,定義名稱為 Role-ec2-test。

Role Json:
$ vim Role-ec2-testsite 

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}

 

建立 "Role-ec2-testsite" Role。
$ aws iam create-role --role-name Role-ec2-testsite --assume-role–policy-document file://Role-ec2-sitetest.json

 

Attach Policy 權限為 S3 Read Only
$ aws iam attach-role-policy --role-name Role-ec2-testsite --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess

 

再建立 Role instance profile
$ aws iam create-instance-profile --instance-profile-name Role-ec2-testsite

 

最後將 Role instance profile 和 Role 關聯起來
$ aws iam add-role-to-instance-profile --role-name Role-ec2-testsite --instance-profile-name Role-ec2-testsite

 

這樣就完成 Role 的建立,可以到 Web console 去驗證一下是否成功。

Orignal From: 用 AWS CLI 建立 IAM Role

2017年2月11日 星期六

一條龍佈署 CI/CD 從 Github 跑 Travis 到 AWS CodeDeploy - Travis 到 CodeDeploy

延續前篇串好 Github 到 Travis 後,在這篇要開始寫 Travis -> CodeDeploy

 

CodeDeploy 簡介

CodeDeploy 本身是一個 Server/Client 的架構,由 AWS 提供的 CodeDeploy (Server) 服務,在 EC2 上安裝 CodeDeploy agent (Client) 去 S3 抓 Travis CI 放的 latest.zip 檔案。

 

由 CodeDeploy 的運作方式,AWS 文件開好以下權限:

  • IAM user for Travis:

    • 從 Travis 上傳到 S3 的權限 (AmazonEC2RoleforAWSCodeDeploy)。

    • 讓 Travis 可以呼叫 CodeDeploy 的權限 (AWSCodeDeployDeployerAccess)



  • Role for EC2:機器要可以存取 S3 (AmazonS3FullAccess)。

  • Role for CodeDeploy:給 AWS CodeDeploy 的服務本身用 (AWSCodeDeployRole)。


2017年2月9日 星期四

Ubuntu 16.04 在 Apache2.4 跑 PHP7.0

最近剛好在跑 Apache 2.4 + PHP7.0 順手記錄一下整個流程。

 

Apache 2.4 改進了很多設定方式 (i.e. a2ensite, a2dissite),和 Nginx 貼近不少更直覺了,效能也不錯。

PHP7.0 就不用說了,大幅改進效能問題。

 

然後因為工作環境的關係,之後開始會多用 Apache2.4。

2017年2月8日 星期三

一條龍佈署 CI 從 Github 跑 Travis 到 AWS CodeDeploy - 介紹及授權 Travis 到 Github

最近把 Puppet 放到 AWS 上面跑 EC2,然後預計要讓 Puppet 在 Github 上面管理,中間透過 Travis Pro 和 AWS CodeDeploy 進行測試 and 更新 Puppet。

 

在這一整個系列 CI 中示範的會是以 Private repository 為主,之後再寫 Public repository 怎麼做。

 

環境準備:

  • 必須要先有至少 1 個 Github Private repository,US $7/month。

  • 建議有 Travis Pro with Bootstrap 版本,US $69/month ( Private 試用只有 100 次 build)。

  • 至少 1 台要佈署的 EC2


2017年2月5日 星期日

Ubuntu 16.04 安裝 Docker engine

最近會記錄一連串的 CI/CD 工作,Docker 是在 DevOps 中的一把利器,在這邊會記錄如何在 Ubuntu 16.04 安裝 Docker

 

Ubuntu 16.04 安裝 Docker

Step.1 先 update 你的 package
$ sudo apt-get update

 

Step.2 加入 Docker 的官方 repository 金鑰
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

2017年2月4日 星期六

AWS 帳號開啟 MFA 兩段式驗證 - Google Auth(TOTP)

根據安全 AWS 提到在帳號的安全性可以開啟 MFA 驗證:
AWS Multi-Factor Authentication (MFA) 會在使用者名稱和密碼之外再增加一層保護,是一個簡易的最佳實務。啟用 MFA 之後,當使用者登入 AWS 網站時,系統將提示他們輸入使用者名稱和密碼 (第一重關卡 – 他們知道的資訊),以及來自其 AWS MFA 裝置的身份驗證代碼 (第二重關卡 – 他們擁有的資訊)。這多個要素共同為您的 AWS 帳戶設定和資源提供更高的安全保護。

在這邊我以 IAM 使用者的角度去建立 MFA

hdparm 測試硬碟讀寫速度

這陣子覺得當 Blog 的硬碟抄寫太慢,其中有一顆是拿來備份的,由於要備份的越來越肥,結果備份舊越來越久 ...

 

決定測試一下硬碟的速度,hdparm 是一個在 Linux 上用來測試硬碟讀寫速度的工具,這篇就拿這個工具來當主軸啦!

 

測試讀取速度
$ hdparm -t /dev/sda 

/dev/sda:
Timing buffered disk reads: 274 MB in 3.01 seconds = 90.65 MB/sec

只有 90MB,囧。