

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

# 最佳實務：管理許可
<a name="best-practices-permissions"></a>

**重要**  
 AWS OpsWorks Stacks 此服務已於 2024 年 5 月 26 日終止，並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載遷移至其他解決方案。如果您對遷移有任何疑問，請透過 [AWS re：Post](https://repost.aws/) 或透過 [AWS Premium Support](https://aws.amazon.com/support) 聯絡 AWS 支援 團隊。

您必須具備某種形式的 AWS 登入資料，才能存取您帳戶的資源。以下是一些將存取提供給您員工的一般性準則。
+ 首先，也是第一步，我們建議您不要使用您帳戶的根登入資料存取 AWS 資源。

  反之，為您的員工建立 [IAM 身分](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html)，並新增提供適當存取權的許可。然後，每位員工都可以使用自己的登入資料來存取資源。
+ 員工應僅具備存取他們需要用來執行其工作之資源的許可。

  例如，應用程式開發人員僅需要存取執行其應用程式的堆疊。
+ 員工應僅具備使用他們需要用來執行其工作之動作的許可。

  應用程式開發人員可能需要開發堆疊的完整許可，以及將他們的應用程式部署到對應生產堆疊的許可。他們可能不需要啟動或停止生產堆疊上執行個體的許可、建立或刪除 layer 的許可等。

如需管理許可的詳細一般性資訊，請參閱 [AWS 安全登入資料](https://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html)。

您可以使用 OpsWorks Stacks 或 IAM 來管理使用者許可。請注意，這兩種選項並非互斥關係，有時候您可能會希望同時使用兩者。

**OpsWorks Stacks 許可管理**  
每個堆疊都有一個 **Permissions (許可)** 頁面，您可以使用該頁面來授予使用者存取堆疊的許可，以及指定他們能夠執行的動作。您可以透過設定下列其中一個許可層級，來指定使用者的許可。每個層級代表一個 IAM 政策，授予一組標準動作的許可。  
+ **Deny (拒絕)** 會拒絕以任何方式與堆疊互動的許可。
+ **Show (顯示)** 會授予檢視堆疊組態的許可，但是不會授予以任何方式修改堆疊狀態的許可。
+ **Deploy (部署)** 包含 **Show (顯示)** 許可，並且也會授予使用者部署應用程式的許可。
+ **Manage (管理)** 包含 **Deploy (部署)** 許可，並且也會允許使用者執行各種堆疊管理動作，例如建立或刪除執行個體和 layer。
**管理**許可層級不會授予少量高階 OpsWorks Stacks 動作的許可，包括建立或複製堆疊。您必須使用 IAM 政策來授予這些許可。
除了設定許可層級之外，您也可以使用堆疊的 **Permissions (許可)** 頁面指定使用者是否在堆疊的執行個體上具有 SSH/RDP 和 sudo/admin 權限。如需 OpsWorks Stacks 許可管理的詳細資訊，請參閱[授予每個堆疊的許可](opsworks-security-users-console.md)。如需管理 SSH 存取的詳細資訊，請參閱[管理 SSH 存取](security-ssh-access.md)。

**IAM 許可管理**  
透過 IAM 許可管理，您可以使用 IAM 主控台、API 或 CLI 將 JSON 格式的政策連接至明確指定其許可的使用者。如需 IAM 許可管理的詳細資訊，請參閱[什麼是 IAM？](https://docs.aws.amazon.com/IAM/latest/UserGuide/Introduction.html)。

**建議：**從 OpsWorks Stacks **許可**管理開始。若您需要微調使用者的許可，或授予未包含在 **Manage (管理)** 許可層級中的使用者許可，您可以合併使用兩種方法。 OpsWorks Stacks 接著會評估這兩個政策，以判斷使用者的許可。

**重要**  
如果使用者有多個具有衝突許可的政策，拒絕一律會獲勝。例如，假設您將 IAM 政策連接到允許存取特定堆疊的使用者，但也使用堆疊的**許可**頁面將**拒絕**許可層級指派給使用者。**Deny (拒絕)** 許可層級會取得優先順序，使用者將無法存取堆疊。如需詳細資訊，請參閱 [IAM 政策評估邏輯](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)。

例如，假設您希望除了新增和刪除 layer 之外，使用者能夠在堆疊上執行大多數的操作。
+ 請指定 **Manage (管理)** 許可 layer 級，允許使用者執行大多數的堆疊管理動作，包含建立和刪除 layer。
+ 再將以下[客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingPolicies.html)連接到使用者，拒絕在該堆疊上使用 [CreateLayer](https://docs.aws.amazon.com/opsworks/latest/APIReference/API_CreateLayer.html) 和 [DeleteLayer](https://docs.aws.amazon.com/opsworks/latest/APIReference/API_DeleteLayer.html) 動作的許可。您可以透過其 *Amazon Resource Name (ARN)[https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html#ARN](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html#ARN)* 識別堆疊，該資訊可在堆疊的 **Settings (設定)** 頁面上取得。

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Deny",
        "Action": [
          "opsworks:CreateLayer",
          "opsworks:DeleteLayer"
        ],
        "Resource": "arn:aws:opsworks:*:*:stack/2f18b4cb-4de5-4429-a149-ff7da9f0d8ee/"
      }
    ]
  }
  ```

------

如需包含範例政策的詳細資訊，請參閱[連接 OpsWorks IAM 政策來管理 Stacks 許可連接 IAM 政策](opsworks-security-users-policy.md)。

**注意**  
使用 IAM 政策的另一種方法是設定條件，限制具有指定 IP 地址或地址範圍的員工對堆疊的存取。例如，若要確保員工僅能從您公司的防火牆內部存取堆疊，請設定將存取限制在您公司 IP 地址範圍內的條件。如需詳細資訊，請參閱[條件](https://docs.aws.amazon.com/IAM/latest/UserGuide/AccessPolicyLanguage_ElementDescriptions.html#Condition)。