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。