AWS Systems Manager 身分型政策範例 - AWS Systems Manager

AWS Systems Manager 身分型政策範例

根據預設,AWS Identity and Access Management (IAM) 使用者和角色不具備建立或修改 AWS Systems Manager 資源的許可。他們也無法使用 Systems Manager 主控台、AWS Command Line Interface (AWS CLI) 或 AWS API 執行任務。IAM 管理員必須建立 IAM 政策,授予使用者和角色在指定資源上執行特定 API 操作的所需許可。管理員接著必須將這些政策連接至需要這些許可的 IAM 使用者或群組。

下列的許可政策範例,可讓使用者刪除美國東部 (俄亥俄) (us-east-2) AWS 區域 中名稱以 MyDocument- 開頭的文件。

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "ssm:DeleteDocument" ], "Resource" : [ "arn:aws:ssm:us-east-2:111122223333:document/MyDocument-*" ] } ] }

若要了解如何使用這些範例 JSON 政策文件建立 IAM 身分型政策,請參閱《IAM 使用者指南》中的建立 IAM 政策

政策最佳實務

身分型政策相當強大。他們可以判斷您帳戶中的某個人員是否可以建立、存取或刪除 Systems Manager 資源。這些動作可能會讓您的 AWS 帳戶 產生費用。當您建立或編輯身分型政策時,請遵循下列準則及建議事項:

  • 開始使用 AWS 受管政策:若要快速開始使用 Systems Manager,請使用 AWS 受管政策來給予員工所需許可。這些政策已在您的帳戶中提供,並由 AWS 維護和更新。如需詳細資訊,請參閱《IAM 使用者指南》中的開始搭配 AWS 受管政策使用許可

  • 授予最低權限:當您建立自訂政策時,請只授予執行任務所需要的許可。以最小一組許可開始,然後依需要授予額外的許可。這比一開始使用太寬鬆的許可,稍後再嘗試將他們限縮更為安全。如需詳細資訊,請參閱《IAM 使用者指南》中的授予最低權限

  • 為敏感操作啟用 MFA:為了增加安全,請要求 IAM 使用者使用多重要素驗證 (MFA) 存取敏感資源或 API 操作。如需詳細資訊,請參閱《IAM 使用者指南》中的在 AWS 中使用多重要素驗證 (MFA)

  • 使用政策條件以增加安全:在切實可行的範圍中,請定義您身分類型政策允許存取資源的條件。例如,您可以撰寫條件,指定請求必須來自一定的允許 IP 地址範圍。您也可以撰寫條件,只在指定的日期或時間範圍內允許請求,或是要求使用 SSL 或 MFA。如需詳細資訊,請參閱《IAM 使用者指南》中的 IAM JSON 政策元素:條件

使用 Systems Manager 主控台

若要存取 Systems Manager 主控台,您必須擁有最低的一組許可。這些許可必須允許您列出和檢視您 AWS 帳戶 中 Systems Manager 資源和其他資源的詳細資訊。

若要在 Systems Manager 主控台充分使用 Systems Manager,您必須有下列服務的許可:

  • AWS Systems Manager

  • Amazon Elastic Compute Cloud (Amazon EC2)

  • AWS Identity and Access Management (IAM)

您可以使用下列政策陳述式,授予必要許可:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:*", "ec2:describeInstances", "iam:ListRoles" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "ssm.amazonaws.com" } } } ] }

如果您建立比最基本必要許可更嚴格的身分型政策,則對於具有該政策的實體 (IAM 使用者或角色) 而言,主控台就無法如預期運作。

對於僅呼叫 AWS CLI 或 AWS API 的使用者,您不需要允許其最基本主控台許可。反之,只需允許存取符合您嘗試執行之 API 操作的動作就可以了。

允許使用者檢視他們自己的許可

此範例會示範如何建立政策,允許 IAM 使用者檢視連接到他們使用者身分的內嵌及受管政策。此政策包含在主控台上,或是使用 AWS CLI 或 AWS API 透過編寫程式的方式完成此動作的許可。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

客戶受管政策範例

您可以建立獨立的政策,在您自己的 AWS 帳戶 進行管理。我們將這些稱為客戶受管政策。您可以將這些政策連接到您 AWS 帳戶 中的多個委託人實體。將政策連接到委託人實體時,便向實體授予了政策中定義的許可。如需詳細資訊,請參閱《IAM 使用者指南》中的客戶受管政策範例

下列使用者政策範例授予執行各種 Systems Manager 動作的許可。使用這些政策來限制 IAM 使用者和角色如何存取 Systems Manager。這些政策會在您執行 Systems Manager API、AWS 開發套件或 AWS CLI 中的動作時運作。使用主控台的使用者,需要授予專屬於主控台的額外許可。如需詳細資訊,請參閱 使用 Systems Manager 主控台

注意

所有範例皆使用美國西部 (奧勒岡) 區域 (us-west-2) 並包含虛構帳戶 ID。不應在 AWS 公有文件 (以 AWS-* 開頭的文件) 的 Amazon Resource Name (ARN) 中指定帳戶 ID。

範例

範例 1:允許使用者在單一區域執行 Systems Manager 操作

下列範例會授予許可,僅在美國東部 (俄亥俄) 區域 (us-east-2) 執行 Systems Manager 操作:

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "ssm:*" ], "Resource" : [ "arn:aws:ssm:us-east-2:aws-account-ID:*" ] } ] }

範例 2:允許使用者列出單一區域的文件

以下範例會授予許可,列出在美國東部 (俄亥俄) 區域 (us-east-2) 中所有以 Update 開頭的文件名稱:

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "ssm:ListDocuments" ], "Resource" : [ "arn:aws:ssm:us-east-2:aws-account-ID:document/Update*" ] } ] }

範例 3:允許使用者使用特定 SSM 文件,以在特定受管節點上執行命令

以下範例為 IAM 政策允許使用者美國東部 (俄亥俄) 區域 (us-east-2) 中執行以下操作:

  • 列出 Systems Manager 文件 (SSM 文件) 和文件版本。

  • 查看文件的詳細資訊。

  • 使用此政策中指定的文件傳送命令。文件的名稱取決於以下項目。

    arn:aws:ssm:us-east-2:aws-account-ID:document/Systems-Manager-document-name
  • 將命令傳送到三個節點。節點取決於第二個 Resource 區段中的下列項目。

    "arn:aws:ssm:us-east-2:aws-account-ID:instance/i-02573cafcfEXAMPLE", "arn:aws:ssm:us-east-2:aws-account-ID:instance/i-0471e04240EXAMPLE", "arn:aws:ssm:us-east-2:aws-account-ID:instance/i-07782c72faEXAMPLE"
  • 命令傳送後查看其詳細資訊。

  • 在 Automation 中啟動和停止工作流程,AWS Systems Manager 功能。

  • 取得有關 Automation 工作流程的資訊。

如果您想要授予使用者許可,讓他們可使用此文件來在使用者有權存取的任何節點上傳送命令 (取決於他們的使用者帳戶),您可以在 Resource 區段中指定與以下類似的項目,並移除其他節點項目。以下範例會使用美國東部 (俄亥俄) 區域 (US-east-2)。

"arn:aws:ssm:us-east-2:*:instance/*"
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ssm:ListDocuments", "ssm:ListDocumentVersions", "ssm:DescribeDocument", "ssm:GetDocument", "ssm:DescribeInstanceInformation", "ssm:DescribeDocumentParameters", "ssm:DescribeInstanceProperties" ], "Effect": "Allow", "Resource": "*" }, { "Action": "ssm:SendCommand", "Effect": "Allow", "Resource": [ "arn:aws:ssm:us-east-2:aws-account-ID:instance/i-02573cafcfEXAMPLE", "arn:aws:ssm:us-east-2:aws-account-ID:instance/i-0471e04240EXAMPLE", "arn:aws:ssm:us-east-2:aws-account-ID:instance/i-07782c72faEXAMPLE", "arn:aws:ssm:us-east-2:aws-account-ID:document/Systems-Manager-document-name" ] }, { "Action": [ "ssm:CancelCommand", "ssm:ListCommands", "ssm:ListCommandInvocations" ], "Effect": "Allow", "Resource": "*" }, { "Action": "ec2:DescribeInstanceStatus", "Effect": "Allow", "Resource": "*" }, { "Action": "ssm:StartAutomationExecution", "Effect": "Allow", "Resource": [ "arn:aws:ssm:us-east-2:aws-account-ID:automation-definition/*" ] }, { "Action": "ssm:DescribeAutomationExecutions", "Effect": "Allow", "Resource": [ "*" ] }, { "Action": [ "ssm:StopAutomationExecution", "ssm:GetAutomationExecution" ], "Effect": "Allow", "Resource": [ "*" ] } ] }

根據標籤來檢視 Systems Manager 文件

您可以在身分型政策中使用條件,來根據標籤控制存取 Systems Manager 資源。此範例會示範如何建立政策,允許檢視 SSM 文件。但是,只有在文件標籤 Owner 值是該使用者的使用者名稱時,才會授予許可。此政策也會授予在主控台完成此動作的必要許可。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListDocumentsInConsole", "Effect": "Allow", "Action": "ssm:ListDocuments", "Resource": "*" }, { "Sid": "ViewDocumentIfOwner", "Effect": "Allow", "Action": "ssm:GetDocument", "Resource": "arn:aws:ssm:*:*:document/*", "Condition": { "StringEquals": {"ssm:ResourceTag/Owner": "${aws:username}"} } } ] }

您可以將此政策連接到您帳戶中的 IAM 使用者。如果名為 richard-roe 的使用者嘗試檢視 Systems Manager 文件,則必須將文件標記為 Owner=richard-roeowner=richard-roe。否則,其會被拒絕存取。條件標籤鍵 Owner 符合 Ownerowner,因為條件索引鍵名稱不區分大小寫。如需詳細資訊,請參閱《IAM 使用者指南》中的 IAM JSON 政策元素:條件