Architecting on AWS 筆記:Account Security

Root User 與 IAM User

帳號分兩種 root user 與 IAM user (圖 1)。

Root User 與 IAM User

圖 1:root user 與 IAM user

Root User

IAM User

Credential

credential 分為四種

Policy

IAM user 透過 policy 來決定擁有什麼樣的權限,意即能使用什麼服務、做什麼動作。

分為兩種

根據這兩種 policy 取交集即為結果;若權限衝突,以 Deny 優先,i.e., Deny > Allow。

如下範例,Policy 1 表示可擁有 EC2 全部的權限,意即 CRUD 皆可。

Policy 1
ec2: *

如下範例,Policy 2 為 read-only,不能 CUD,因此限制使用者對 EC2 API 能做的動作。

Policy 2
ec2: Describe*

Identity-based Policy

identity-based policy 是指針對特定身份來對資源存取的限制。

IAM User Group

IAM user group 是指將使用者加到特定 group 就能有特定群組的權限,以便管理或異動權限。

IAM Role

IAM role 是指

利用 IAM policy 用來設定權限

範例 1

如下例所示,利用 IAM policy 設定 IAM user 的存取權限,允許操作 dynamodb 和 s3 所有的權限 (full access)。

{
	"Effect": "Allow",
	"Action": [
		"dynamodb: *",
		"s3:*"
	],
	"Resource": [
		"arn:aws:dynamodb:region:xxxxx-xxxxx-xxxxx:table/TABLE-XXXXX",
		"arn:aws:bucket:s3:::BUCKET-XXXXX",
		"arn:aws:bucket:s3:::BUCKET-YYYYY"
	]

}

範例 2

如下例所示

{
    "Effect": "Deny",
    "Action": [
        "dynamodb: *",
        "s3:*"
    ],
    "NotResource": [
        "arn:aws:dynamodb:region:xxxxx-xxxxx-xxxxx:table/TABLE-XXXXX",
        "arn:aws:bucket:s3:::BUCKET-XXXXX",
        "arn:aws:bucket:s3:::BUCKET-YYYYY"
    ]

}

Resource-based Policy

resource-based policy 是指設定給特定資源的 policy,用來規範使用者可以怎麼使用它。

範例如下。

{
  "Version": "2012-10-17",
  "Statement": [{
    "Sid": "AAAAA-BBBBB-CCCCC",
    "Effert": "Allow",
    "Action": "s3:PutObject",
    "Resource": ["arn: aws: s3::: mybucket/folder123/*"]
  }]
}

Policy 語法

Assume Role


comments powered by Disqus