本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
管理 Elastic Beanstalk 使用者政策
AWS Elastic Beanstalk 提供兩個受管政策,可讓您指派 Elastic Beanstalk 管理的所有資源的完整存取權或唯讀存取權。您可以將政策連接至 AWS Identity and Access Management (IAM) 使用者或群組,或連接至使用者擔任的角色。
受管使用者政策
-
AdministratorAccess-AWSElasticBeanstalk – 提供使用者建立、修改和刪除 Elastic Beanstalk 應用程式、應用程式版本、組態設定、環境及其基礎資源的完整管理許可。若要檢視受管政策內容,請參閱 受AWS 管政策參考指南中的 AdministratorAccess-AWSElasticBeanstalk 頁面。
-
AWSElasticBeanstalkReadOnly – 允許使用者檢視應用程式和環境,但不能執行修改它們的操作。它提供所有 Elastic Beanstalk 資源的唯讀存取權,以及 Elastic Beanstalk 主控台擷取的其他 AWS 資源。請注意,唯讀存取不會啟用諸如下載 Elastic Beanstalk 日誌供您讀取等動作。這是因為日誌暫存在 Amazon S3 儲存貯體,其中 Elastic Beanstalk 需要寫入許可。請參閱本主題結尾的範例,了解如何啟用 Elastic Beanstalk 日誌的存取。若要檢視受管政策內容,請參閱 受AWS 管政策參考指南中的 AWSElasticBeanstalkReadOnly 頁面。
重要
Elastic Beanstalk 受管政策不提供精細許可,其會授予使用 Elastic Beanstalk 應用程式可能需要的所有許可。在某些情況下,您可能想要進一步限制我們受管政策的許可。如需一個使用案例的範例,請參閱 防止跨環境 Amazon S3 儲存貯體存取。
此外,我們的受管政策也不涵蓋您可能新增至解決方案,並且不由 Elastic Beanstalk 管理的自訂資源許可。若要實作更精細的許可、最低必要許可或自訂資源許可,請使用自訂政策。
已廢除的 受管政策
先前,Elastic Beanstalk 支援兩個其他受管使用者政策,AWSElasticBeanstalkFullAccess以及 AWSElasticBeanstalkReadOnlyAccess。我們計劃淘汰這些之前的政策。您可能仍然可以在 IAM主控台中查看和使用它們。不過,我們建議您轉換為使用新的受管使用者政策,並新增自訂政策來授予自訂資源許可 (若有)。
與其他服務整合的政策
如果您偏好使用其他服務,我們也提供更精細的政策,讓您能夠將環境與此類其他服務整合。
-
AWSElasticBeanstalkRoleCWL – 允許環境管理 Amazon CloudWatch Logs 日誌群組。
-
AWSElasticBeanstalkRoleRDS – 允許環境整合 Amazon RDS執行個體。
-
AWSElasticBeanstalkRoleWorkerTier – 允許工作者環境層建立 Amazon DynamoDB 資料表和 Amazon SQS佇列。
-
AWSElasticBeanstalkRoleECS – 允許多容器 Docker 環境管理 Amazon ECS叢集。
-
AWSElasticBeanstalkRoleCore – 允許 Web 服務環境的核心操作。
-
AWSElasticBeanstalkRoleSNS – 允許環境啟用 Amazon SNS主題整合。
若要查看特定受管政策的JSON來源,請參閱 AWS 受管政策參考指南。
透過受管政策控制存取
您可以使用受管政策,來授予對 Elastic Beanstalk 的完整存取或唯讀存取。當需要其他許可才能存取新功能時,Elastic Beanstalk 會自動更新這些政策。
若要將受管政策套用至 IAM 使用者或群組
-
在 IAM主控台中開啟政策頁面
。 -
在搜尋方塊中,輸入
AWSElasticBeanstalk
以篩選政策。 -
在政策清單中,選取 AWSElasticBeanstalkReadOnly或 AdministratorAccess-AWSElasticBeanstalk 旁的核取方塊。
-
選擇政策動作,再選擇附加。
-
選取一或多個使用者和群組以將政策連接到。您可用篩選功能表和搜尋方塊來篩選主體實體清單。
-
選擇連接政策。
建立自訂使用者政策
您可以建立自己的IAM政策,以允許或拒絕特定 Elastic Beanstalk 資源上的特定 Elastic Beanstalk API動作,並控制存取非 Elastic Beanstalk 管理的自訂資源。如需將政策連接至使用者或群組的詳細資訊,請參閱IAM《 使用者指南》中的使用政策。如需建立自訂政策的詳細資訊,請參閱IAM《 使用者指南》中的建立IAM政策。
注意
雖然您可以限制使用者與 Elastic Beanstalk 的互動方式APIs,但目前沒有有效的方法可以防止擁有建立必要基礎資源許可的使用者在 Amazon EC2和其他 服務中建立其他資源。
您可以將這些政策視為分配 Elastic Beanstalk 責任的有效方法,而不是保護所有基礎資源的方法。
重要
如果您已將自訂政策指派給 Elastic Beanstalk 服務角色,請務必為其指派適當的啟動範本許可。否則,您可能沒有更新環境或啟動新環境所需的許可。如需詳細資訊,請參閱 啟動範本所需的權限。
IAM 政策內含描述您欲授予之許可的政策陳述式。為 Elastic Beanstalk 建立政策陳述式時,您必須了解如何使用政策陳述式的下列四個部分:
-
Effect (效果) 指定欲允許或拒絕陳述式內的動作。
-
動作會指定您要控制API的操作。例如,使用
elasticbeanstalk:CreateEnvironment
來指定CreateEnvironment
操作。特定操作 (如建立環境) 需要其他許可來執行這些動作。如需詳細資訊,請參閱Elastic Beanstalk 動作的資源與條件。注意
若要使用
UpdateTagsForResource
API操作,請指定下列兩個虛擬動作 (或兩者) 之一,而非API操作名稱:elasticbeanstalk:AddTags
-
控制呼叫
UpdateTagsForResource
並傳送欲在TagsToAdd
參數新增之標籤清單的許可。 elasticbeanstalk:RemoveTags
-
控制呼叫
UpdateTagsForResource
並傳送欲在TagsToRemove
參數移除之標籤金鑰清單的許可。
-
Resource (資源) 指定您欲控制存取的資源。若要指定 Elastic Beanstalk 資源,請列出每個資源的 Amazon Resource Name (ARN)。
-
(選用) Condition (條件) 指定陳述式授予之許可的限制。如需詳細資訊,請參閱Elastic Beanstalk 動作的資源與條件。
以下章節示範幾個案例,其中您可能會考慮自訂使用者政策。
啟用有限 Elastic Beanstalk 環境建立
下列範例中的政策可讓使用者呼叫 CreateEnvironment
動作來建立名稱開頭為 Test
且具備特定應用程式及應用程式版本的環境。
{ "Version": "2012-10-17", "Statement": [ { "Sid":"CreateEnvironmentPerm", "Action": [ "elasticbeanstalk:CreateEnvironment" ], "Effect": "Allow", "Resource": [ "arn:aws:elasticbeanstalk:us-east-2:123456789012:environment/My First Elastic Beanstalk Application/Test*" ], "Condition": { "StringEquals": { "elasticbeanstalk:InApplication": ["arn:aws:elasticbeanstalk:us-east-2:123456789012:application/My First Elastic Beanstalk Application"], "elasticbeanstalk:FromApplicationVersion": ["arn:aws:elasticbeanstalk:us-east-2:123456789012:applicationversion/My First Elastic Beanstalk Application/First Release"] } } }, { "Sid":"AllNonResourceCalls", "Action":[ "elasticbeanstalk:CheckDNSAvailability", "elasticbeanstalk:CreateStorageLocation" ], "Effect":"Allow", "Resource":[ "*" ] } ] }
上述政策說明如何授予對 Elastic Beanstalk 操作有限制的存取。若要實際啟動環境,使用者必須具有許可,才能建立驅動環境 AWS 的資源。例如,下列政策針對用於 Web 伺服器環境的預設資源組合,授予存取:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*", "ecs:*", "elasticloadbalancing:*", "autoscaling:*", "cloudwatch:*", "s3:*", "sns:*", "cloudformation:*", "sqs:*" ], "Resource": "*" } ] }
啟用存放在 Amazon S3 的 Elastic Beanstalk 日誌的存取
下列範例中的政策可讓使用者提取 Elastic Beanstalk 日誌、將日誌暫存在 Amazon S3 中,以及擷取日誌。
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:DeleteObject", "s3:GetObjectAcl", "s3:PutObjectAcl" ], "Effect": "Allow", "Resource": "arn:aws:s3:::elasticbeanstalk-*" } ] }
注意
若要僅限制這些日誌路徑的權限,請使用下列資源格式。
"arn:aws:s3:::elasticbeanstalk-
us-east-2
-123456789012
/resources/environments/logs/*"
啟用特定 Elastic Beanstalk 應用程式的管理
以下範例的政策可讓使用者在一個特定 Elastic Beanstalk 應用程式內管理環境和其他資源。此政策拒絕對其他應用程式的資源執行 Elastic Beanstalk 動作,也拒絕建立和刪除 Elastic Beanstalk 應用程式。
注意
此政策不會拒絕存取透過其他服務的任何資源。它示範由不同使用者分配 Elastic Beanstalk 應用程式管理責任的有效方法,而不是做為保護基礎資源的方法。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "elasticbeanstalk:CreateApplication", "elasticbeanstalk:DeleteApplication" ], "Resource": [ "*" ] }, { "Effect": "Deny", "Action": [ "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateConfigurationTemplate", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DeleteConfigurationTemplate", "elasticbeanstalk:DeleteEnvironmentConfiguration", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeConfigurationOptions", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:DescribeEnvironmentResources", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeEvents", "elasticbeanstalk:DeleteEnvironmentConfiguration", "elasticbeanstalk:RebuildEnvironment", "elasticbeanstalk:RequestEnvironmentInfo", "elasticbeanstalk:RestartAppServer", "elasticbeanstalk:RetrieveEnvironmentInfo", "elasticbeanstalk:SwapEnvironmentCNAMEs", "elasticbeanstalk:TerminateEnvironment", "elasticbeanstalk:UpdateApplicationVersion", "elasticbeanstalk:UpdateConfigurationTemplate", "elasticbeanstalk:UpdateEnvironment", "elasticbeanstalk:RetrieveEnvironmentInfo", "elasticbeanstalk:ValidateConfigurationSettings" ], "Resource": [ "*" ], "Condition": { "StringNotEquals": { "elasticbeanstalk:InApplication": [ "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/myapplication" ] } } } ] }