如何 AWS CodeDeploy 使用 IAM - AWS CodeDeploy

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

如何 AWS CodeDeploy 使用 IAM

在您用IAM來管理存取權之前 CodeDeploy,您應該瞭解哪些IAM功能可以搭配使用 CodeDeploy。若要取得更多資訊,請參閱《IAM使用指南》IAM中的使用AWS 服務

CodeDeploy 身分型政策

使用以IAM身分識別為基礎的策略,您可以指定允許或拒絕的動作和資源,以及允許或拒絕處理行動的條件。 CodeDeploy 支援動作、資源和條件索引鍵。如需有關您在JSON策略中使用之元素的資訊,請參閱《使IAM用指南》中的IAMJSON策略元素參考資料。

動作

管理員可以使用 AWS JSON策略來指定誰可以存取什麼內容。也就是說,哪個主體在什麼條件下可以對什麼資源執行哪些動作

JSON策略Action元素描述了您可以用來允許或拒絕策略中存取的動作。策略動作通常與關聯的 AWS API操作具有相同的名稱。有一些例外情況,例如沒有匹配API操作的僅限權限的操作。也有一些作業需要政策中的多個動作。這些額外的動作稱為相依動作

政策會使用動作來授予執行相關聯動作的許可。

正在 CodeDeploy 使用的策略動作在動作之前使用前codedeploy:綴。例如,codedeploy:GetApplication 許可授予使用者執行 GetApplication 操作的許可。原則陳述式必須包含ActionNotAction元素。 CodeDeploy 定義了它自己的一組動作,描述您可以使用此服務執行的任務。

若要在單一陳述式中指定多個動作,請用逗號分隔,如下所示:

"Action": [ "codedeploy:action1", "codedeploy:action2"

您也可以使用萬用字元 (*) 來指定多個動作。例如,包含以下動作以指定開頭是文字 Describe 的所有動作:

"Action": "ec2:Describe*"

若要取得 CodeDeploy 動作清單,請參閱《IAM使用指南》 AWS CodeDeploy中的〈定義的動作〉

如需列出所有 CodeDeploy API動作及其套用的資源的表格,請參閱CodeDeploy 許可參考

資源

管理員可以使用 AWS JSON策略來指定誰可以存取什麼內容。也就是說,哪個主體在什麼條件下可以對什麼資源執行哪些動作

ResourceJSON原則元素會指定要套用動作的一個或多個物件。陳述式必須包含 ResourceNotResource 元素。最佳做法是使用其 Amazon 資源名稱 (ARN) 指定資源。您可以針對支援特定資源類型的動作 (稱為資源層級許可) 來這麼做。

對於不支援資源層級許可的動作 (例如列出操作),請使用萬用字元 (*) 來表示陳述式適用於所有資源。

"Resource": "*"

例如,您可以指定部署群組 (myDeploymentGroup)在您的聲明中使用它ARN,如下所示:

"Resource": "arn:aws:codedeploy:us-west-2:123456789012:deploymentgroup:myApplication/myDeploymentGroup"

您也可以使用萬用字元 (*) 來指定屬於帳戶的所有部署群組,如下所示:

"Resource": "arn:aws:codedeploy:us-west-2:123456789012:deploymentgroup:*"

若要指定所有資源,或API動作不支援ARNs,請在元素中使用萬用字Resource元 (*),如下所示:

"Resource": "*"

某些 CodeDeploy API動作可接受多個資源 (例如,BatchGetDeploymentGroups)。要在單個語句中指定多個資源,請ARNs用逗號分隔它們,如下所示:

"Resource": ["arn1", "arn2"]

CodeDeploy 提供了一組操作來處理資 CodeDeploy源。如需可用操作的清單,請參閱 CodeDeploy 許可參考

如需 CodeDeploy 資源類型及其清單ARNs,請參閱《IAM使用指南》 AWS CodeDeploy中的〈定義的資源。如需可在其中指定每個資源之動作ARN的相關資訊,請參閱動作定義者 AWS CodeDeploy

CodeDeploy 資源與營運

在中 CodeDeploy,主要資源是部署群組。在政策中,您可以使用 Amazon 資源名稱 (ARN) 來識別該政策適用的資源。 CodeDeploy 支援可與部署群組搭配使用的其他資源,包括應用程式、部署組態和執行個體。這些資源稱為「子資源」。這些資源和子資源與其ARNs相關聯具有唯一性。如需詳細 Amazon 訊,請參閱 Amazon Web Services 一般參考. ARNs

資源類型 ARN格式
部署群組

arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/deployment-group-name

應用程式

arn:aws:codedeploy:region:account-id:application:application-name

部署組態

arn:aws:codedeploy:region:account-id:deploymentconfig:deployment-configuration-name

執行個體

arn:aws:codedeploy:region:account-id:instance/instance-ID

所有 CodeDeploy 資源

arn:aws:codedeploy:*

指定區域中指定帳號擁有的所有 CodeDeploy 資源

arn:aws:codedeploy:region:account-id:*

注意

大多數服務都 AWS 將冒號(:) 或正斜杠(/)視為ARNs. 但是,在資源模式和規則中 CodeDeploy 使用完全匹配。建立事件模式時,請務必使用正確的ARN字元,以使其符合資源中的ARN語法。

條件索引鍵

CodeDeploy 不提供任何服務特定的條件金鑰,但它確實支援使用某些全域條件金鑰。如需詳細資訊,請參閱《IAM使用指南》中的AWS 全域條件前後關聯鍵字

範例

若要檢視以 CodeDeploy 身分為基礎的原則範例,請參閱。AWS CodeDeploy 身分型政策範例

CodeDeploy 資源型政策

CodeDeploy 不支援以資源為基礎的政策。若要檢視以資源為基礎的詳細政策頁面範例,請參閱使用以資源為基礎的政策。 AWS Lambda

以 CodeDeploy 標籤為基礎的授權

CodeDeploy 不支援標記資源或根據標籤控制存取。

CodeDeploy IAM角色

IAM角色是您 AWS 帳戶中具有特定權限的實體。

使用臨時登入資料 CodeDeploy

您可以使用臨時認證登入同盟、擔任IAM角色或擔任跨帳戶角色。您可以透過呼叫AssumeRole或之類的 AWS STS API作業來取得臨時安全登入資料GetFederationToken

CodeDeploy 支援使用臨時認證。

服務連結角色

CodeDeploy 不支援服務連結角色。

服務角色

此功能可讓服務代表您擔任服務角色。此角色可讓服務存取其他服務中的資源,以代表您完成動作。服務角色會顯示在您的 AWS 帳戶中,且屬於帳戶所有。這表示使用者可以變更此角色的權限。不過,這樣可能會破壞此服務的功能。

CodeDeploy 支援服務角色。

選擇一個IAM角色 CodeDeploy

在中建立部署群組資源時 CodeDeploy,您必須選擇允許 CodeDeploy 代表您存取 Amazon EC2 的角色。如果您先前已建立服務角色或服務連結角色,則會 CodeDeploy提供可供您選擇的角色清單。選擇允許存取啟動和停止EC2執行個體的角色很重要。