本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
授予 CloudFormation Hooks 的 IAM 許可
根據預設,您 中的新使用者 AWS 帳戶 沒有使用 AWS Management Console、 AWS Command Line Interface (AWS CLI) 或 AWS API 管理勾點的許可。若要授予使用者許可,IAM 管理員可以建立 IAM 政策。然後,管理員可以將 IAM 政策新增至角色,使用者便能擔任這些角色。
使用本主題中的政策範例來建立您自己的自訂 IAM 政策,以授予使用者使用 Hooks 的許可。
若要了解如何使用這些範例 JSON 政策文件建立 IAM 身分型政策,請參閱《IAM 使用者指南》中的使用客戶受管政策定義自訂 IAM 許可。
本主題涵蓋執行下列動作所需的許可:
-
管理勾點 – 在帳戶中建立、修改和停用勾點。
-
公開發佈勾點 – 註冊、測試和發佈您的自訂勾點,以便在 CloudFormation 登錄檔中公開提供。
-
檢視調用結果 – 存取和查詢您帳戶中的 Hook 調用結果。
建立 IAM 政策時,您可以在cloudformation
服務授權參考 章節的動作、資源和條件索引鍵中找到與服務字首相關聯的所有動作、資源和條件索引鍵 AWS CloudFormation的文件。
允許使用者管理勾點
如果您需要允許使用者管理延伸模組,包括勾點,而不能在 CloudFormation 登錄檔中公開延伸模組,您可以使用下列範例 IAM 政策。
重要
ActivateType
和 SetTypeConfiguration
API 呼叫會一起運作,在您的 帳戶中建立勾點。當您授予使用者呼叫 SetTypeConfiguration
API 的許可時,您會自動授予他們修改和停用現有勾點的能力。您無法使用資源層級許可來限制對此 API 呼叫的存取。因此,請確定您僅將此許可授予帳戶中的授權使用者。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:ActivateType", "cloudformation:DescribeType", "cloudformation:ListTypes", "cloudformation:SetTypeConfiguration" ], "Resource": "*" } ] }
管理勾點的使用者可能需要一些相關的許可。例如,若要在 CloudFormation 主控台中檢視來自 Control Catalog 的控制項,使用者必須在 IAM 政策中擁有 controlcatalog:ListControls
許可。若要在 CloudFormation 登錄檔中將自訂勾點註冊為私有延伸,使用者必須在 IAM 政策中擁有 cloudformation:RegisterType
許可。
允許使用者公開發佈自訂勾點
下列範例 IAM 政策特別著重於發佈功能。如果您需要允許使用者在 CloudFormation 登錄檔中公開使用延伸項目,包括勾點,請使用此政策。
重要
發佈勾點可公開提供給其他 AWS 帳戶。確保只有授權使用者具有這些許可,且已發佈的延伸符合組織的品質和安全標準。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:DescribePublisher", "cloudformation:DescribeTypeRegistration", "cloudformation:ListTypes", "cloudformation:ListTypeVersions", "cloudformation:PublishType", "cloudformation:RegisterPublisher", "cloudformation:RegisterType", "cloudformation:TestType" ], "Resource": "*" } ] }
允許使用者請求調用結果
檢視勾點調用結果所需的 IAM 許可會根據提出的 API 請求而變更。
-
若要授予請求所有勾點結果、特定勾點結果或特定勾點和調用狀態結果的許可,您必須授予
cloudformation:ListAllHookResults
動作的存取權。 -
若要透過指定勾點目標授予請求結果的許可,您必須授予
cloudformation:ListHookResults
動作的存取權。此許可允許 API 呼叫者在呼叫 時指定TargetType
和TargetId
參數ListHookResults
。
以下顯示請求勾點調用結果的基本許可政策範例。具有此政策的 IAM 身分 (使用者或角色) 具有使用所有可用參數組合來請求所有調用結果的許可。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:ListAllHookResults", "cloudformation:ListHookResults" ], "Resource": "*" } ] }
控制可以指定哪些變更集
下列範例 IAM 政策會指定 勾點的目標,授予 cloudformation:ListHookResults
動作請求結果的許可。不過,如果目標是名為 的變更集,也會拒絕該動作example-changeset
。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:ListHookResults" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "cloudformation:ListHookResults" ], "Resource": "*", "Condition": { "StringEquals": { "cloudformation:ChangeSetName": "
example-changeset
" } } } ] }
控制可以指定哪些勾點
下列範例 IAM 政策授予 cloudformation:ListAllHookResults
動作的許可,僅在請求中提供 Hook 的 ARN 時請求調用結果。它會拒絕指定勾點 ARN 的動作。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:ListAllHookResults" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "cloudformation:ListAllHookResults" ], "Resource": "*", "Condition": { "Null": { "cloudformation:TypeArn": "true" } } }, { "Effect": "Deny", "Action": [ "cloudformation:ListAllHookResults" ], "Resource": "*", "Condition": { "ArnEquals": { "cloudformation:TypeArn": "arn:aws:cloudformation:
us-east-1
:123456789012
:type/hook/MyCompany-MyHook
" } } } ] }