如何 AWS Shield 使用 IAM - AWS WAFAWS Firewall Manager、和 AWS Shield Advanced

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

如何 AWS Shield 使用 IAM

在您用IAM來管理 Shield 存取權限之前,請先瞭解哪些IAM功能可搭配 Shield 使用。

IAM您可以搭配使用的功能 AWS Shield
IAM特徵 護 Shield 支撐

身分型政策

資源型政策

政策動作

政策資源

政策條件索引鍵 (服務特定)

ACLs

ABAC(策略中的標籤)

部分

暫時性憑證

轉寄存取工作階段 (FAS)

服務角色

服務連結角色

若要深入瞭解 Shield 和其他 AWS 服務如何與大部分IAM功能搭配使用,請參閱IAM使用者指南IAM中的可使用AWS 服務

以身分識別為基礎的 Shield 政策

支援身分型政策:

以身分識別為基礎的原則是您可以附加至身分識別 (例如使用者、使用IAM者群組或角色) 的JSON權限原則文件。這些政策可控制身分在何種條件下能對哪些資源執行哪些動作。若要瞭解如何建立以身分識別為基礎的策略,請參閱《IAM使用指南》中的〈建立IAM策略〉。

使用以IAM身分識別為基礎的策略,您可以指定允許或拒絕的動作和資源,以及允許或拒絕動作的條件。您無法在身分型政策中指定主體,因為這會套用至連接的使用者或角色。若要瞭解可在JSON策略中使用的所有元素,請參閱《使用IAM者指南》中的IAMJSON策略元素參考資料。

若要檢視 Shield 身分型原則的範例,請參閱。AWS Shield的身分型政策範例

Shield 內以資源為基礎的政策

支援資源型政策:

以資源為基礎的JSON策略是您附加至資源的政策文件。以資源為基礎的政策範例包括IAM角色信任政策和 Amazon S3 儲存貯體政策。在支援資源型政策的服務中,服務管理員可以使用它們來控制對特定資源的存取權限。對於附加政策的資源,政策會定義指定的主體可以對該資源執行的動作以及在何種條件下執行的動作。您必須在資源型政策中指定主體。主參與者可以包括帳戶、使用者、角色、同盟使用者或。 AWS 服務

若要啟用跨帳戶存取,您可以在以資源為基礎的策略中指定一個或多個帳戶中的一個或多個帳戶中的IAM實體作為主體。新增跨帳戶主體至資源型政策,只是建立信任關係的一半。當主參與者和資源不同時 AWS 帳戶,受信任帳戶中的IAM管理員也必須授與主參與者實體 (使用者或角色) 權限,才能存取資源。其透過將身分型政策連接到實體來授與許可。不過,如果資源型政策會為相同帳戶中的主體授予存取,這時就不需要額外的身分型政策。如需詳細資訊,請參閱《IAM使用指南》IAM中的〈跨帳號資源存取

Shield 牌的政策行動

支援政策動作:

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

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

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

若要查看 Shield 動作清單,請參閱服務授權參考 AWS Shield定義的動作。

Shield 中的政策動作會在動作之前使用下列前置詞:

shield

如需在單一陳述式中指定多個動作,請用逗號分隔。

"Action": [ "shield:action1", "shield:action2" ]

您也可以使用萬用字元 (*) 來指定多個動作。例如,若要指定 Shield 中以開頭的所有動作List,請包含下列動作:

"Action": "shield:List*"

若要檢視 Shield 身分型原則的範例,請參閱。AWS Shield的身分型政策範例

Shield 牌政策資源

支援政策資源:

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

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

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

"Resource": "*"

若要查看 Shield 資源類型及其清單ARNs,請參閱服務授權參考 AWS Shield中的定義資源。若要瞭解您可以針對每個資源指定哪些動作,請參閱由定義ARN的動作 AWS Shield。若要允許或拒絕存取 Shield 資源子集,請在策略ARN的resource元素中包含資源。

在 AWS Shield, 資源是保護攻擊. 這些資源具有與其關聯的唯一 Amazon 資源名稱 (ARNs),如下表所示。

AWS Shield 主控台中的名稱 姓名 AWS Shield SDK/CLI ARN格式
事件或攻擊 AttackDetail

arn:aws:shield::account:attack/ID

保護 Protection

arn:aws:shield::account:protection/ID

若要允許或拒絕存取 Shield 資源子集,請在策略ARN的resource元素中包含資源。Shield 牌的格式ARNs如下:

arn:partition:shield::account:resource/ID

更換 account, resourceID 具有有效值的變量。有效值如下:

  • account:您的識別碼 AWS 帳戶。您必須指定一個數值。

  • resource:護 Shield 資源的類型,attack或者protection

  • ID:Shield 資源的 ID 或萬用字元 (*),表示與指定之相關聯之指定類型的所有資源 AWS 帳戶。

例如,以下內容ARN指定了帳戶111122223333的所有保護:

arn:aws:shield::111122223333:protection/*

Shield 牌資源的格式如下:ARNs

arn:partition:shield:region:account-id:scope/resource-type/resource-name/resource-id

如需有關ARN規格的一 Amazon 資訊,請參閱 Amazon Web Services 一般參考. ARNs

以下列出資wafv2源ARNs的特定需求:

  • region:對於您用來保護 Amazon CloudFront 分發的 Shield 牌資源,請將其設定為us-east-1。否則,請將其設定為您正在使用受保護區域資源的區域。

  • scope:將範圍設定global為與 Amazon CloudFront 分發搭配使用,或regional與任何 AWS WAF 支援的區域資源搭配使用。區域資源包括 Amazon API 閘道RESTAPI、應用程式負載平衡器、 AWS AppSync GraphQL API、Amazon Cognito 使用者集區、 AWS App Runner 服務和 AWS 驗證存取執行個體。

  • resource-type: 指定下列其中一個值:attack針對事件或攻擊、protection保護。

  • resource-name:指定您為 Shield 資源提供的名稱,或指定萬用字元 (*) 以指示滿足中其他規格的所有資源ARN。您必須指定資源名稱和資源 ID,或為兩者指定萬用字元。

  • resource-id:指定 Shield 資源的 ID,或指定萬用字元 (*) 以指示滿足中其他規格的所有資源ARN。您必須指定資源名稱和資源 ID,或為兩者指定萬用字元。

例如,以下ARN指定所有ACLs具有區域範圍的 Web 區域111122223333中的帳戶us-west-1

arn:aws:wafv2:us-west-1:111122223333:regional/webacl/*/*

下列內容ARN指定區域111122223333中帳戶MyIPManagementRuleGroup的全域範圍命名的規則群組us-east-1

arn:aws:wafv2:us-east-1:111122223333:global/rulegroup/MyIPManagementRuleGroup/1111aaaa-bbbb-cccc-dddd-example-id

若要檢視 Shield 身分型原則的範例,請參閱。AWS Shield的身分型政策範例

護 Shield 的政策條件金鑰

支援服務特定政策條件金鑰:

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

Condition 元素 (或 Condition 區塊) 可讓您指定使陳述式生效的條件。Condition 元素是選用項目。您可以建立使用條件運算子的條件運算式 (例如等於或小於),來比對政策中的條件和請求中的值。

若您在陳述式中指定多個 Condition 元素,或是在單一 Condition 元素中指定多個索引鍵, AWS 會使用邏輯 AND 操作評估他們。如果您為單一條件索引鍵指定多個值,請使用邏輯OR運算來 AWS 評估條件。必須符合所有條件,才會授與陳述式的許可。

您也可以在指定條件時使用預留位置變數。例如,只有在IAM使用者名稱標記資源時,您才可以授與IAM使用者存取資源的權限。如需詳細資訊,請參閱《IAM使用指南》中的IAM政策元素:變數和標籤

AWS 支援全域條件金鑰和服務特定條件金鑰。若要查看所有 AWS 全域條件索引鍵,請參閱《使用指南》中的AWS 全域條件內IAM容索引

若要查看 Shield 條件金鑰清單,請參閱服務授權參考 AWS Shield中的條件金鑰。若要瞭解您可以使用條件索引鍵的動作和資源,請參閱定義的動作 AWS Shield

若要檢視 Shield 身分型原則的範例,請參閱。AWS Shield的身分型政策範例

ACLs在 Shield

支持ACLs:

存取控制清單 (ACLs) 控制哪些主參與者 (帳戶成員、使用者或角色) 具有存取資源的權限。ACLs類似於以資源為基礎的策略,雖然它們不使用JSON政策文件格式。

ABAC有 Shield 牌

支援 ABAC (策略中的標籤): 部分

以屬性為基礎的存取控制 (ABAC) 是一種授權策略,可根據屬性定義權限。在中 AWS,這些屬性稱為標籤。您可以將標籤附加至IAM實體 (使用者或角色) 和許多 AWS 資源。標記實體和資源是的第一步ABAC。然後,您可以設計ABAC策略,以便在主參與者的標籤與他們嘗試存取的資源上的標籤相符時允許作業。

ABAC在快速成長的環境中很有幫助,並且有助於原則管理變得繁瑣的情況。

如需根據標籤控制存取,請使用 aws:ResourceTag/key-nameaws:RequestTag/key-nameaws:TagKeys 條件索引鍵,在政策的條件元素中,提供標籤資訊。

如果服務支援每個資源類型的全部三個條件金鑰,則對該服務而言,值為 Yes。如果服務僅支援某些資源類型的全部三個條件金鑰,則值為 Partial

如需有關的詳細資訊ABAC,請參閱什麼是ABAC?《IAM使用者指南》中。若要檢視包含設定步驟的自學課程ABAC,請參閱《使用指南》中的〈使用以屬性為基礎的存取控制 (ABAC) IAM

使用臨時登入資料搭配 Shield

支援臨時憑證:

當您使用臨時憑據登錄時,某些 AWS 服務 不起作用。如需其他資訊,包括哪些 AWS 服務 與臨時登入資料搭配使用 AWS 服務 ,請參閱《IAM使用指南》IAM中的使用方式。

如果您使用除了使用者名稱和密碼以外的任何方法登入,則您正在 AWS Management Console 使用臨時認證。例如,當您 AWS 使用公司的單一登入 (SSO) 連結存取時,該程序會自動建立臨時認證。當您以使用者身分登入主控台,然後切換角色時,也會自動建立臨時憑證。如需有關切換角色的詳細資訊,請參閱《IAM使用者指南》中的〈切換到角色 (主控台)

您可以使用 AWS CLI 或手動建立臨時認證 AWS API。然後,您可以使用這些臨時登入資料來存取 AWS。 AWS 建議您動態產生臨時登入資料,而非使用長期存取金鑰。如需詳細資訊,請參閱IAM。

Shield 牌的轉寄存取工作階段

支援轉寄存取工作階段 (FAS):

當您使用使用IAM者或角色在中執行動作時 AWS,您會被視為主參與者。使用某些服務時,您可能會執行某個動作,進而在不同服務中啟動另一個動作。FAS會使用主參與者呼叫的權限 AWS 服務,並結合要求 AWS 服務 向下游服務發出要求。FAS只有當服務收到需要與其他 AWS 服務 資源互動才能完成的請求時,才會發出請求。在此情況下,您必須具有執行這兩個動作的許可。有關提出FAS請求時的策略詳細信息,請參閱轉發訪問會話

Shield 的服務角色

支援服務角色:

服務角色是服務假定代表您執行動作的IAM角色。IAM管理員可以從中建立、修改和刪除服務角色IAM。如需詳細資訊,請參閱《IAM使用指南》 AWS 服務中的建立角色以將權限委派給

警告

變更服務角色的權限可能會中斷 Shield 功能。只有在 Shield 提供指引時才編輯服務角色。

Shield 牌的服務連結角色

支援服務連結角色:

服務連結角色是連結至. AWS 服務服務可以擔任代表您執行動作的角色。服務連結角色會顯示在您的中, AWS 帳戶 且屬於服務所有。IAM管理員可以檢視 (但無法編輯服務連結角色) 的權限。

如需有關建立或管理 Shield 服務連結角色的詳細資訊,請參閱使用服務連結角色進階 Shield