本頁說明如何授予、變更及撤銷主體對單一服務帳戶的存取權。如要管理主體對專案、資料夾或機構中所有服務帳戶的存取權,請在專案、資料夾或機構層級管理存取權。
在 Identity and Access Management (IAM) 中,存取權是透過允許政策 (也稱為 IAM 政策) 管理。允許政策會附加至Google Cloud 資源。每項允許政策都包含一組角色繫結,可將一或多個主體 (例如使用者或服務帳戶) 與 IAM 角色建立關聯。這些角色繫結會將指定角色授予主體,包括附加允許政策的資源,以及該資源的所有子系。如要進一步瞭解允許政策,請參閱瞭解允許政策。
服務帳戶既是可授予其他主體存取權的資源,也是可授予其他資源存取權的主體。本頁面將服務帳戶視為資源,並說明如何授予其他主體存取權。如要瞭解如何授予服務帳戶其他資源的存取權,請參閱下列指南:
- 如要授予服務帳戶專案、資料夾或機構的存取權,請參閱「管理專案、資料夾和機構的存取權」。
- 如要授予服務帳戶其他資源的存取權,請參閱「管理其他資源的存取權」。
本頁說明如何使用Google Cloud 控制台、Google Cloud CLI 和 REST API 管理服務帳戶的存取權。您也可以使用 IAM 用戶端程式庫管理存取權。
事前準備
Enable the IAM API.
瞭解服務帳戶。
必要 IAM 角色
如要取得管理服務帳戶存取權所需的權限,請要求管理員授予您服務帳戶或該服務帳戶所屬專案的「服務帳戶管理員」 (roles/iam.serviceAccountAdmin
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這個預先定義的角色具備管理服務帳戶存取權所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要管理服務帳戶的存取權,必須具備下列權限:
-
iam.serviceAccounts.get
-
iam.serviceAccounts.list
-
iam.serviceAccounts.getIamPolicy
-
iam.serviceAccounts.setIamPolicy
查看目前的存取權
以下章節說明如何使用 Google Cloud 控制台、gcloud CLI 和 REST API,查看哪些使用者有權存取服務帳戶。您也可以使用 IAM 用戶端程式庫取得服務帳戶的允許政策,藉此查看存取權。
控制台
前往 Google Cloud 控制台的「Service Accounts」(服務帳戶) 頁面。
選取專案。
按一下服務帳戶的電子郵件地址。
前往「權限」分頁標籤。「可存取這個服務帳戶的主體」部分會列出所有已獲服務帳戶角色的主體。
這份清單包含的主體,是透過在父項資源上授予的角色取得存取權。如要進一步瞭解政策沿用機制,請參閱「政策沿用機制和資源階層」。
選用:如要查看服務代理程式的角色授予項目,請選取「包含 Google 提供的角色授予項目」 Google核取方塊。
gcloud
如要查看誰有權存取服務帳戶,請取得服務帳戶的允許政策。如要瞭解如何解讀允許政策,請參閱瞭解允許政策。
如要取得服務帳戶的允許政策,請為該服務帳戶執行 get-iam-policy
指令:
gcloud iam service-accounts get-iam-policy SA_ID --format=FORMAT > PATH
提供以下這些值:
SA_ID
:服務帳戶的 ID。這可以是SA_NAME@PROJECT_ID.iam.gserviceaccount.com
格式的服務帳戶電子郵件地址,也可以是服務帳戶的不重複數字 ID。FORMAT
:政策的格式。使用json
或yaml
。PATH
:政策的新輸出檔案路徑。
舉例來說,以下指令會取得服務帳戶 my-service-account
的政策,並以 JSON 格式儲存至主目錄:
gcloud iam service-accounts get-iam-policy my-service-account --format json > ~/policy.json
REST
如要查看誰有權存取服務帳戶,請取得服務帳戶的允許政策。如要瞭解如何解讀允許政策,請參閱瞭解允許政策。
「
serviceAccounts.getIamPolicy
」方法會取得服務帳戶的允許政策。
使用任何要求資料之前,請先替換以下項目:
PROJECT_ID
:您的 Google Cloud 專案 ID。專案 ID 為英數字串,例如my-project
。SA_ID
:服務帳戶的 ID。 這可以是SA_NAME@PROJECT_ID.iam.gserviceaccount.com
形式的服務帳戶電子郵件地址,也可以是服務帳戶的不重複數字 ID。POLICY_VERSION
:要傳回的政策版本。要求應指定最新政策版本,即政策版本 3。詳情請參閱在取得政策時指定政策版本。
HTTP 方法和網址:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID:getIamPolicy
JSON 要求主體:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
如要傳送要求,請展開以下其中一個選項:
回應會包含服務帳戶的允許政策。例如:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }
授予或撤銷單一 IAM 角色
您可以使用 Google Cloud 主控台和 gcloud CLI,對單一主體快速授予或撤銷單一角色,而不直接編輯服務帳戶的允許政策。 常見的主體類型包括 Google 帳戶、服務帳戶、Google 群組和網域。如需所有主體類型清單,請參閱「主體類型」。
一般而言,政策變更會在 2 分鐘內生效,但在某些情況下,可能需要 7 分鐘以上,系統才會全面套用變更。
如需協助找出最合適的預先定義角色,請參閱「尋找合適的預先定義角色」。
授予單一 IAM 角色
如要將單一角色授予主體,請執行下列操作:
控制台
前往 Google Cloud 控制台的「Service Accounts」(服務帳戶) 頁面。
選取專案。
按一下服務帳戶的電子郵件地址。
前往「權限」分頁,然後找到「可存取這個服務帳戶的主體」部分。
選取要授予角色的主體:
如要將角色授予服務帳戶中已有其他角色的主體,請找出包含該主體的列,然後依序點選該列中的
「編輯主體」和 「新增其他角色」。如要將角色授予服務代理,請選取「IncludeGoogle-provided role grants」(包含Google提供的角色授權) 核取方塊,查看服務代理的電子郵件地址。
如要將角色授予服務帳戶中沒有任何角色的主體,請按一下
「授予存取權」,然後輸入主體的 ID,例如my-user@example.com
或//iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com
。
從下拉式清單中選取要授予的角色。為遵循安全性最佳做法,請選擇僅含主體所需權限的角色。
選用:為角色新增條件。
按一下 [儲存]。主體就會取得服務帳戶的角色。
gcloud
如要將角色授予主體,請執行 add-iam-policy-binding
指令:
gcloud iam service-accounts add-iam-policy-binding SA_ID \ --member=PRINCIPAL --role=ROLE_NAME \ --condition=CONDITION
提供以下這些值:
SA_ID
:服務帳戶的 ID。這可以是SA_NAME@PROJECT_ID.iam.gserviceaccount.com
格式的服務帳戶電子郵件地址,也可以是服務帳戶的不重複數字 ID。PRINCIPAL
:主體或成員的 ID,通常採用以下格式:PRINCIPAL-TYPE:ID
。 例如user:my-user@example.com
或principalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com
。如需PRINCIPAL
可用的完整值清單,請參閱「主體 ID」。對於主體類型
user
,識別碼中的網域名稱必須是 Google Workspace 網域或 Cloud Identity 網域。如要瞭解如何設定 Cloud Identity 網域,請參閱 Cloud Identity 總覽。ROLE_NAME
:要授予的角色名稱。請使用下列其中一種格式:- 預先定義的角色:
roles/SERVICE.IDENTIFIER
- 專案層級自訂角色:
projects/PROJECT_ID/roles/IDENTIFIER
- 機構層級的自訂角色:
organizations/ORG_ID/roles/IDENTIFIER
如需預先定義角色清單,請參閱「瞭解角色」。
- 預先定義的角色:
CONDITION
:選用。要新增至角色繫結的條件。如要進一步瞭解條件,請參閱條件總覽。
舉例來說,如要將服務帳戶使用者角色授予使用者
my-user@example.com,請執行下列指令:
my-service-account@my-project.iam.gserviceaccount.com
gcloud iam service-accounts add-iam-policy-binding my-service-account@my-project.iam.gserviceaccount.com \ --member=user:my-user@example.com --role=roles/iam.serviceAccountUser
撤銷單一 IAM 角色
如要撤銷主體的單一角色,請執行下列步驟:
控制台
前往 Google Cloud 控制台的「Service Accounts」(服務帳戶) 頁面。
選取專案。
按一下服務帳戶的電子郵件地址。
前往「權限」分頁,然後找到「可存取這個服務帳戶的主體」部分。
找到包含要撤銷存取權主體的資料列。然後點選該列中的「Edit principal」(編輯主體)
。針對要撤銷的角色按一下「刪除」圖示
按鈕,然後按一下「儲存」。
gcloud
如要快速撤銷使用者的某個角色,請執行 remove-iam-policy-binding
指令:
gcloud iam service-accounts remove-iam-policy-binding SA_ID \ --member=PRINCIPAL --role=ROLE_NAME
提供以下這些值:
SA_ID
:服務帳戶的 ID。這可以是SA_NAME@PROJECT_ID.iam.gserviceaccount.com
格式的服務帳戶電子郵件地址,也可以是服務帳戶的不重複數字 ID。PRINCIPAL
:主體或成員的 ID,通常採用以下格式:PRINCIPAL-TYPE:ID
。 例如user:my-user@example.com
或principalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com
。如需PRINCIPAL
可用的完整值清單,請參閱「主體 ID」。對於主體類型
user
,識別碼中的網域名稱必須是 Google Workspace 網域或 Cloud Identity 網域。如要瞭解如何設定 Cloud Identity 網域,請參閱 Cloud Identity 總覽。ROLE_NAME
:要撤銷的角色名稱。請使用下列其中一種格式:- 預先定義的角色:
roles/SERVICE.IDENTIFIER
- 專案層級自訂角色:
projects/PROJECT_ID/roles/IDENTIFIER
- 機構層級的自訂角色:
organizations/ORG_ID/roles/IDENTIFIER
如需預先定義角色清單,請參閱「瞭解角色」。
- 預先定義的角色:
舉例來說,如要撤銷使用者
my-user@example.com
的服務帳戶使用者角色,請執行下列指令:
my-service-account@my-project.iam.gserviceaccount.com
gcloud iam service-accounts remove-iam-policy-binding my-service-account@my-project.iam.gserviceaccount.com \ --member=user:my-user@example.com --role=roles/iam.serviceAccountUser
使用 Google Cloud 控制台授予或撤銷多個 IAM 角色
您可以使用 Google Cloud 控制台,為單一主體授予及撤銷多個角色:
前往 Google Cloud 控制台的「Service Accounts」(服務帳戶) 頁面。
選取專案。
按一下服務帳戶的電子郵件地址。
前往「權限」分頁,然後找到「可存取這個服務帳戶的主體」部分。
選取要修改角色的主體:
如要修改服務帳戶中已有角色的主體,請找出包含該主體的資料列,然後點選該列中的「編輯主體」
,接著點選「新增其他角色」 。如要修改服務代理人的角色,請選取「Include Google-provided role grants」(包括 Google 提供的角色授權) Google 核取方塊,查看服務代理人的電子郵件地址。
如要將角色授予服務帳戶中沒有任何角色的主體,請按一下
「授予存取權」,然後輸入主體的電子郵件地址或其他 ID。
修改主體的角色:
- 如要將角色授予還沒有任何資源角色的主體,請按一下「Select a role」(選取角色),然後從下拉式清單中選取要授予的角色。
- 如要將其他角色授予主體,請按一下「新增其他角色」,然後從下拉式清單中選取要授予的角色。
- 如要以其他角色取代主體的其中一個角色,請按一下現有角色,然後從下拉式清單中選擇要授予的角色。
- 如要撤銷主體的其中一個角色,請針對要撤銷的每個角色按一下「刪除」 按鈕。
按一下 [儲存]。
以程式輔助方式授予或撤銷多個 IAM 角色
如要進行大規模存取權變更,包括授予及撤銷多個主體的多個角色,請使用「讀取 - 修改 - 寫入」模式更新服務帳戶的允許政策:
- 呼叫
getIamPolicy()
讀取目前的允許政策。 - 使用文字編輯器或透過程式來編輯允許政策,藉此新增或移除任何主體或角色繫結。
- 呼叫
setIamPolicy()
寫入更新後的允許政策。
本節說明如何使用 gcloud CLI 和 REST API 更新允許政策。您也可以使用 IAM 用戶端程式庫更新允許政策。
一般而言,政策變更會在 2 分鐘內生效,但在某些情況下,可能需要 7 分鐘以上,系統才會全面套用變更。
取得目前的允許政策
gcloud
如要取得服務帳戶的允許政策,請為該服務帳戶執行 get-iam-policy
指令:
gcloud iam service-accounts get-iam-policy SA_ID --format=FORMAT > PATH
提供以下這些值:
SA_ID
:服務帳戶的 ID。這可以是SA_NAME@PROJECT_ID.iam.gserviceaccount.com
格式的服務帳戶電子郵件地址,也可以是服務帳戶的不重複數字 ID。FORMAT
:允許政策的格式。使用json
或yaml
。PATH
:允許政策的新輸出檔案路徑。
舉例來說,以下指令會取得服務帳戶 my-service-account
的允許政策,並以 JSON 格式儲存至主目錄:
gcloud iam service-accounts get-iam-policy my-service-account --format json > ~/policy.json
REST
「
serviceAccounts.getIamPolicy
」方法會取得服務帳戶的允許政策。
使用任何要求資料之前,請先替換以下項目:
PROJECT_ID
:您的 Google Cloud 專案 ID。專案 ID 為英數字串,例如my-project
。SA_ID
:服務帳戶的 ID。 這可以是SA_NAME@PROJECT_ID.iam.gserviceaccount.com
形式的服務帳戶電子郵件地址,也可以是服務帳戶的不重複數字 ID。POLICY_VERSION
:要傳回的政策版本。要求應指定最新政策版本,即政策版本 3。詳情請參閱在取得政策時指定政策版本。
HTTP 方法和網址:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID:getIamPolicy
JSON 要求主體:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
如要傳送要求,請展開以下其中一個選項:
回應會包含服務帳戶的允許政策。例如:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }
將回應儲存為適當類型的檔案 (json
或 yaml
)。
Java
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱 IAM 用戶端程式庫。 詳情請參閱 IAM Java API 參考說明文件。
如要向 IAM 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱 IAM 用戶端程式庫。 詳情請參閱 IAM Python API 參考說明文件。
如要向 IAM 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
修改允許政策
透過程式或使用文字編輯器修改服務帳戶許可政策的本機副本,以反映要授予或撤銷特定使用者角色的動作。
為確保不會覆寫其他變更,請勿編輯或移除「允許政策」的 etag
欄位。etag
欄位會指出允許政策的目前狀態。當您設定更新後的允許政策時,IAM 會比較要求中的 etag
值與現有的 etag
,並且只會在兩個值相符時才寫入允許政策。
如要編輯允許政策授予的角色,請編輯允許政策中的角色繫結。角色繫結的格式如下:
{ "role": "ROLE_NAME", "members": [ "PRINCIPAL_1", "PRINCIPAL_2", ... "PRINCIPAL_N" ], "conditions:" { CONDITIONS } }
預留位置的值如下:
ROLE_NAME
:要授予的角色名稱。請使用下列其中一種格式:- 預先定義的角色:
roles/SERVICE.IDENTIFIER
- 專案層級自訂角色:
projects/PROJECT_ID/roles/IDENTIFIER
- 機構層級的自訂角色:
organizations/ORG_ID/roles/IDENTIFIER
如需預先定義角色清單,請參閱「瞭解角色」。
- 預先定義的角色:
PRINCIPAL_1
、PRINCIPAL_2
、...PRINCIPAL_N
:要授予角色的主體 ID。主體 ID 通常採用以下格式:
PRINCIPAL-TYPE:ID
。 例如user:my-user@example.com
或principalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com
。如需PRINCIPAL
可用的完整值清單,請參閱「主體 ID」。對於主體類型
user
,識別碼中的網域名稱必須是 Google Workspace 網域或 Cloud Identity 網域。如要瞭解如何設定 Cloud Identity 網域,請參閱 Cloud Identity 總覽。CONDITIONS
:選用。指定授予存取權時機的條件。
授予角色
如要將角色授予主體,請修改允許政策中的角色繫結。 如要瞭解可授予的角色,請參閱「瞭解角色」一文,或查看服務帳戶可授予的角色。如需協助找出最合適的預先定義角色,請參閱「找出合適的預先定義角色」。
您也可以選擇使用條件,只在符合特定需求時授予角色。
如要授予已包含在允許政策中的角色,請將主體新增至現有角色繫結:
gcloud
編輯允許政策,將主體新增至現有角色繫結。請注意,您必須設定更新後的允許政策,這項變更才會生效。
舉例來說,假設允許政策包含下列角色繫結,將服務帳戶使用者角色 (roles/iam.serviceAccountUser
) 授予 Kai:
{
"role": "roles/iam.serviceAccountUser",
"members": [
"user:kai@example.com"
]
}
如要將相同角色授予 Raha,請將 Raha 新增至現有的角色繫結:
{ "role": "roles/iam.serviceAccountUser", "members": [ "user:kai@example.com", "user:raha@example.com" ] }
REST
編輯允許政策,將主體新增至現有角色繫結。請注意,您必須設定更新後的允許政策,這項變更才會生效。
舉例來說,假設允許政策包含下列角色繫結,將服務帳戶使用者角色 (roles/iam.serviceAccountUser
) 授予 Kai:
{
"role": "roles/iam.serviceAccountUser",
"members": [
"user:kai@example.com"
]
}
如要將相同角色授予 Raha,請將 Raha 新增至現有的角色繫結:
{ "role": "roles/iam.serviceAccountUser", "members": [ "user:kai@example.com", "user:raha@example.com" ] }
如要授予允許政策尚未包含的角色,請新增角色繫結:
gcloud
編輯允許政策,新增角色繫結,將角色授予主體。您必須設定更新後的允許政策,這項變更才會生效。
舉例來說,如要將「服務帳戶憑證建立者」角色 (roles/iam.serviceAccountTokenCreator
) 授予 Raha,請將下列角色繫結新增至允許政策的 bindings
陣列:
{
"role": "roles/iam.serviceAccountTokenCreator",
"members": [
"user:raha@example.com"
]
}
REST
編輯允許政策,新增角色繫結,將角色授予主體。您必須設定更新後的允許政策,這項變更才會生效。
舉例來說,如要將「服務帳戶憑證建立者」角色 (roles/iam.serviceAccountTokenCreator
) 授予 Raha,請將下列角色繫結新增至允許政策的 bindings
陣列:
{
"role": "roles/iam.serviceAccountTokenCreator",
"members": [
"user:raha@example.com"
]
}
撤銷角色
如要撤銷角色,請從角色繫結中移除主體。如果角色繫結中沒有其他主體,請從允許政策中移除整個角色繫結。
gcloud
編輯允許政策,移除主體或整個角色繫結。您必須設定更新後的允許政策,這項變更才會生效。
舉例來說,假設允許政策包含下列角色繫結,將服務帳戶使用者角色 (roles/iam.serviceAccountUser
) 授予 Kai 和 Raha:
{
"role": "roles/iam.serviceAccountUser",
"members": [
"user:kai@example.com",
"user:raha@example.com"
]
}
如要撤銷 Kai 的角色,請從角色繫結中移除 Kai 的主體 ID:
{
"role": "roles/iam.serviceAccountUser",
"members": [
user:raha@example.com
]
}
如要撤銷 Kai 和 Raha 的角色,請從允許政策中移除角色繫結。
REST
編輯允許政策,移除主體或整個角色繫結。您必須設定更新後的允許政策,這項變更才會生效。
舉例來說,假設允許政策包含下列角色繫結,將服務帳戶使用者角色 (roles/iam.serviceAccountUser
) 授予 Kai 和 Raha:
{
"role": "roles/iam.serviceAccountUser",
"members": [
"user:kai@example.com",
"user:raha@example.com"
]
}
如要撤銷 Kai 的角色,請從角色繫結中移除 Kai 的主體 ID:
{
"role": "roles/iam.serviceAccountUser",
"members": [
user:raha@example.com
]
}
如要撤銷 Kai 和 Raha 的角色,請從允許政策中移除角色繫結。
設定允許政策
修改允許政策以授予及撤銷角色後,請呼叫 setIamPolicy()
來進行更新。
gcloud
如要為資源設定允許政策,請為服務帳戶執行 set-iam-policy
指令:
gcloud iam service-accounts set-iam-policy SA_ID PATH
提供以下這些值:
SA_ID
:服務帳戶的 ID。這可以是SA_NAME@PROJECT_ID.iam.gserviceaccount.com
格式的服務帳戶電子郵件地址,也可以是服務帳戶的不重複數字 ID。PATH
:包含新允許政策的檔案路徑。
回應會包含更新後的允許政策。
舉例來說,下列指令會將 policy.json
中儲存的允許政策,設為服務帳戶 my-service-account@my-project.iam.gserviceaccount.com
的允許政策:
gcloud iam service-accounts set-iam-policy my-service-account@my-project.iam.gserviceaccount.com \ ~/policy.json
REST
serviceAccounts.setIamPolicy
方法會為服務帳戶設定更新後的允許政策。
使用任何要求資料之前,請先替換以下項目:
PROJECT_ID
:您的 Google Cloud 專案 ID。專案 ID 為英數字串,例如my-project
。SA_ID
:服務帳戶的 ID。 這可以是SA_NAME@PROJECT_ID.iam.gserviceaccount.com
形式的服務帳戶電子郵件地址,也可以是服務帳戶的不重複數字 ID。-
POLICY
:要設定的政策 JSON 表示法。如要進一步瞭解政策格式,請參閱政策參考資料。舉例來說,如要設定上一步驟中顯示的允許政策,請將
policy
換成下列內容:{ "version": 1, "etag": "BwUqLaVeua8=", "bindings": [ { "role": "roles/iam.serviceAccountUser", "members": [ "group:my-group@example.com" ] }, { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }
HTTP 方法和網址:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID:setIamPolicy
JSON 要求主體:
{ "policy": POLICY }
如要傳送要求,請展開以下其中一個選項:
回應會包含更新後的允許政策。
Java
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱 IAM 用戶端程式庫。 詳情請參閱 IAM Java API 參考說明文件。
如要向 IAM 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱 IAM 用戶端程式庫。 詳情請參閱 IAM Python API 參考說明文件。
如要向 IAM 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
後續步驟
- 瞭解要授予哪些角色,才能讓主體以服務帳戶身分進行驗證。
- 瞭解如何選擇最合適的預先定義角色。
- 請參閱「使用服務帳戶的最佳做法」,瞭解如何安全地使用服務帳戶。
- 瞭解如何管理專案、資料夾和機構的存取權。
- 瞭解管理其他資源存取權的一般步驟。
- 瞭解如何使用條件式角色繫結,為主體的存取權設定條件。