使用主控台建立自動化的服務角色 - AWS Systems Manager

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用主控台建立自動化的服務角色

如果您需要為自動化建立服務角色 AWS Systems Manager,請完成下列工作。如需 Automation 需要服務角色之時機的詳細資訊,請參閱 設定自動化

任務 1:建立自動化的服務角色

使用下列處理程序以建立 Systems Manager Automation 的服務角色 (或擔任角色)。

注意

您也可以在 Runbook 中使用此角色,例如 AWS-CreateManagedLinuxInstance Runbook。在 Runbook 中使用此角色或 (ARN) 角色的 Amazon 資源名稱 AWS Identity and Access Management (IAM),可讓自動化在您的環境中執行動作,例如啟動新執行個體並代表您執行動作。

若要建立IAM角色並允許「自動化」假設角色
  1. 在開啟IAM主控台https://console.aws.amazon.com/iam/

  2. 在導覽窗格中,選擇 Roles (角色),然後選擇 Create role (建立角色)

  3. Select type of trusted entity (選擇可信任執行個體類型) 下,選擇 AWS service ( 服務)。

  4. Choose a use case (選擇使用案例) 區段中,選擇 Systems Manager (系統管理員),然後選擇 Next: Permissions (下一步:許可)

  5. 在 [附加的權限原則] 頁面上,搜尋 [A mazonSSMAutomation Role] 原則,選擇它,然後選擇 [下一步:檢閱]。

  6. Review (檢閱) 頁面,於 Role name (角色名稱) 方塊輸入名稱,接著輸入描述。

  7. 選擇 Create role (建立角色)。系統會讓您回到 Roles (角色) 頁面。

  8. Roles (角色) 頁面,選擇您剛建立的角色,以開啟 Summary (摘要) 頁面。請注意「角色名稱」和「角色」ARN。在下一個程序中將 iam: PassRole 政策附加到您的IAM帳戶ARN時,您將指定角色。您也可以指定角色名稱和 Runbook ARN 中的。

注意

AmazonSSMAutomationRole原則會將「自動化」角色權限指派給您帳戶中的 AWS Lambda 功能子集。這些函數會以 "Automation" 開頭。如果您打算將自動化與 Lambda 函數搭配使用,Lambda ARN 必須使用下列格式:

"arn:aws:lambda:*:*:function:Automation*"

如果您有ARNs不使用此格式的現有 Lambda 函數,則還必須將其他 Lambda 政策附加到自動化角色 (例如AWSLambdaRole原則)。額外的政策或角色必須針對 AWS 帳戶帳戶內的 Lambda 函數提供更廣泛的存取。

建立服務角色後,我們建議您編輯信任政策,幫助預防跨服務混淆代理人問題。混淆代理人問題屬於安全性議題,其中沒有執行動作許可的實體可以強制具有更多許可的實體執行該動作。在中 AWS,跨服務模擬可能會導致混淆的副問題。在某個服務 (呼叫服務) 呼叫另一個服務 (被呼叫服務) 時,可能會發生跨服務模擬。可以操縱呼叫服務來使用其許可,以其不應有存取許可的方式對其他客戶的資源採取動作。為了防止這種情況發生, AWS 提供的工具可協助您透過已授予您帳戶中資源存取權的服務主體來保護所有服務的資料。

若要限制 Automation 為資源提供另一項服務的許可,我們建議在資源政策中使用 aws:SourceArnaws:SourceAccount 全域條件內容索引鍵。如果aws:SourceArn值不包含帳戶 ID (例如 Amazon S3 儲存貯體)ARN,您必須同時使用全域條件內容金鑰來限制許可。如果同時使用這兩個全域條件內容索引鍵,且 aws:SourceArn 值包含帳戶 ID,則在相同政策陳述式中使用 aws:SourceAccount 值和 aws:SourceArn 值中的帳戶時,必須使用相同的帳戶 ID。如果您想要僅允許一個資源與跨服務存取相關聯,則請使用 aws:SourceArn。如果您想要允許該帳戶中的任何資源與跨服務使用相關聯,請使用 aws:SourceAccount。的值aws:SourceArn必須是自動化執行的值。ARN如果您不知道資源ARN的完整內容,或者您要指定多個資源,請使用具有萬用字元 () 的aws:SourceArn全域內容條件索引鍵與萬用字元 (*) 來表示ARN. 例如:arn:aws:ssm:*:123456789012:automation-execution/*

下列範例示範如何使用 Automation 的 aws:SourceArnaws:SourceAccount 全域條件內容索引鍵,來預防混淆代理人問題。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:ssm:*:123456789012:automation-execution/*" } } } ] }
修改角色信任政策
  1. 在開啟IAM主控台https://console.aws.amazon.com/iam/

  2. 在導覽窗格中,選擇 Roles (角色)。

  3. 在帳戶的角色清單中選擇 Automation 服務角色的名稱。

  4. 選擇 Trust Relationships (信任關係) 標籤,然後選擇 Edit Trust Relationship (編輯信任關係)

  5. 使用 Automation 的 aws:SourceArnaws:SourceAccount 全域條件內容索引鍵來編輯信任政策,幫助預防混淆代理人問題。

  6. 若要儲存變更,請選擇 Update Trust Policy (更新信任政策)。

(選擇性) 新增「自動化」內嵌政策或客戶管理的政策,以呼叫其他 AWS 服務

如果您執行 AWS 服務 透過使用IAM服務角色呼叫其他人的自動化操作,則必須設定服務角色具有叫用這些服務的權限。此需求適用於所有的 AWS 自動化手AWS-*冊 (手冊),例如AWS-ConfigureS3BucketLoggingAWS-CreateDynamoDBBackup、和 AWS-RestartEC2Instance Runbook,僅舉幾例。此要求也適用於您所建立會透過呼叫其他服務的動作來叫用其他 AWS 服務 的任何自訂 Runbooks。例如,如果您使用 aws:executeAwsApiaws:CreateStackaws:copyImage 等動作,則您必須為服務角色設定可叫用這些服務的許可。您可以將IAM內嵌政策或客戶管理的政策新增至角色,將權限授與其 AWS 服務 他人。

若要內嵌服務角色 (IAM主控台) 的內嵌原則
  1. 登入 AWS Management Console 並開啟IAM主控台,位於https://console.aws.amazon.com/iam/

  2. 在導覽窗格中,選擇角色

  3. 在清單中,選擇您要編輯的角色名稱。

  4. 選擇許可索引標籤標籤。

  5. 新增許可下拉式選單中,選擇連接政策建立內嵌政策

  6. 如果選擇連接政策,請選取您要新增之政策旁邊的核取方塊,然後選擇新增許可

  7. 如果您選擇 [建立內嵌原則],請選擇索JSON引標籤。

  8. 輸入 AWS 服務 您要呼叫的「JSON原則」文件。以下是兩個JSON政策文件範例。

    Amazon S3 PutObject 和 GetObject示例

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }

    Amazon EC2 CreateSnapshot 和 DescribeSnapShots示例

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"ec2:CreateSnapshot", "Resource":"*" }, { "Effect":"Allow", "Action":"ec2:DescribeSnapshots", "Resource":"*" } ] }

    如需有關IAM策略語言的詳細資訊,請參閱IAM使用指南中的《IAMJSON策略參考資料》

  9. 完成時,請選擇 Review policy (檢閱政策)Policy Validator (政策檢查工具) 會回報任何語法錯誤。

  10. Review policy (檢閱政策) 頁面,輸入您所建立政策的 Name (名稱)。檢閱政策 Summary (摘要) 來查看您的政策所授予的許可。然後選擇 Create policy (建立政策) 來儲存您的工作。

  11. 在您建立內嵌政策後,它會自動嵌入您的角色中。

工作 2:將 iam: PassRole 政策附加到您的自動化角色

使用以下程序將 iam:PassRole 政策連接至您的自動化服務角色。這可讓自動化服務在執行自動化時將角色傳遞至其他服務或 Systems Manager 功能。

將 iam: PassRole 政策附加到您的自動化角色
  1. 在您剛建立的角色之 Summary (摘要) 頁面,選擇 Permissions (許可) 標籤。

  2. 選擇 Add inline policy (新增內嵌政策)

  3. Create policy (建立政策) 頁面,選擇 Visual editor (視覺化編輯器) 標籤。

  4. 請選擇 [服務],然後選擇IAM

  5. 選擇 Select actions (選取動作)

  6. 在 [篩選器動作] 文字方塊中PassRole,輸入,然後選擇PassRole選項。

  7. 選擇資源。確認已選取 [特定],然後選擇 [新增] ARN。

  8. 在 [指ARN定角色] 欄位中,貼上您在 [作業 1] 結尾複製的自動化角色ARN。系統會填入 Account (帳戶)Role name with path (角色名稱與路徑) 欄位。

    注意

    如果您希望 Automation 服務角色將IAM執行個體設定檔角色附加至EC2執行個體,則必須新增IAM執行個體設定檔角色。ARN這可讓自動化服務角色將IAM執行個體設定檔角色傳遞給目標EC2執行個體。

  9. 選擇 Add (新增)

  10. 選擇 Review policy (檢閱政策)。

  11. Review Policy (檢閱政策) 頁面輸入名稱,接著選擇 Create Policy (建立政策)。