本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
轉送存取工作階段
轉送存取工作階段 (FAS) 是一種 AWS IAM 技術,服務會在 AWS 服務代表您提出請求時,用來傳遞您的身分、許可和工作階段屬性。FAS 使用呼叫 AWS 服務的身分許可,結合 AWS 服務的身分,向下游服務提出請求。FAS 請求只有在服務收到需要與其他 AWS 服務或資源互動才能完成的請求後,才會代表 IAM 主體對 AWS 服務提出。發出 FAS 請求時:
-
從 IAM 主體接收初始請求的服務會檢查 IAM 主體的許可。
-
接收後續 FAS 請求的服務也會檢查相同 IAM 主體的許可。
例如,當 SSE-KMS 用於加密物件時,Amazon S3 會使用 FAS 呼叫 來 AWS Key Management Service 解密物件。下載 SSE-KMS 加密物件時,名為資料讀取器的角色會針對 Amazon S3 呼叫物件上的 GetObject,而不會 AWS KMS 直接呼叫 。收到 GetObject 請求並授權資料讀取器後,Amazon S3 會向 發出 FAS 請求, AWS KMS 以解密 Amazon S3 物件。當 KMS 收到 FAS 請求時,其會檢查角色的許可,並且只有在 data-reader 具有 KMS 金鑰的正確許可時才授權解密請求。對 Amazon S3 和 的請求會使用角色的許可進行 AWS KMS 授權,而且只有在資料讀取器同時具有 Amazon S3 物件和 AWS KMS 金鑰的許可時,才會成功。

注意
收到 FAS 請求的服務可以發出其他 FAS 請求。在這種情況下,請求主體必須具有 FAS 呼叫之所有服務的許可。
FAS 請求和 IAM 政策條件
發出 FAS 請求時,aws:CalledVia、aws:CalledViaFirst 和 aws:CalledViaLast 條件索引鍵會填入啟動 FAS 呼叫之服務的服務主體。每當發出 FAS 請求時,都會將 aws:ViaAWSService 條件索引鍵值設定為 true
。在下圖中,直接向 CloudFormation 發出的請求沒有設定任何 aws:CalledVia
或 aws:ViaAWSService
條件索引鍵。當 CloudFormation 和 DynamoDB 代表角色發出下游 FAS 請求時,便會填入這些條件索引鍵的值。

若要允許發出 FAS 請求,以免遭具有測試來源 IP 地址或來源 VPC 之條件索引鍵的拒絕政策陳述式拒絕,您必須在您的拒絕政策中使用條件索引鍵,為 FAS 請求提供例外狀況。這可以透過使用 aws:ViaAWSService
條件索引鍵,為所有 FAS 請求完成此操作。若要僅允許特定 AWS 服務提出 FAS 請求,請使用 aws:CalledVia
。
重要
當透過 VPC 端點發出初始請求後發出 FAS 請求時,不會在 FAS 請求中使用來自初始請求中 aws:SourceVpce
、aws:SourceVpc
和 aws:VpcSourceIp
的條件索引鍵值。當寫入政策使用 aws:VPCSourceIP
或 aws:SourceVPCE
有條件地授予存取權時,您也必須使用 aws:ViaAWSService
或 aws:CalledVia
以允許 FAS 請求。當公有 AWS 服務端點收到初始請求後提出 FAS 請求時,後續的 FAS 請求將使用相同的aws:SourceIP
條件索引鍵值提出。
範例:允許從 VPC 或使用 FAS 存取 Amazon S3
在以下 IAM 政策範例中,只有當 Amazon S3 GetObject 和 Athena 請求來自連接至 example_vpc
的 VPC 端點,或者請求是 Athena 發出的 FAS 請求時,才允許這些請求。
如需使用條件索引鍵允許 FAS 存取的其他範例,請參閱 data perimeter 範例政策儲存庫