[英]How to set a dynamic RoleMappings key for a IndentityPoolRoleAttachment in CloudFormation
我正在構建一個堆棧來初始化Cognito
安裝。 作為其中的一部分,我設置了具有關聯角色的用戶組。 我需要設置Choose role from token
選項,允許身份使用分配給他們的組中的角色。
這是通過做RoleMappings
的對象IndentityPoolRoleAttachment
對象。 這個映射對象是一個string -> object
映射,其中字符串代表身份提供者。 就我而言,這是:
cognito-idp.${some-region}.amazonaws.com/${some-userpool-id}:${some-pool-client-id}
顯然,這需要基於堆棧中的值動態構建,但我還沒有找到一種以語法正確的方式來做到這一點的方法。 使用Ref
和Fn::Sub
都會導致語法錯誤。 我嘗試過 yaml 和 json 語法。
我錯過了一些明顯的東西嗎?
最近遇到了這個問題,我訪問了@AkkarinZA 評論中的線程。
在該線程中,@mikef 的回復對我有用。 我們可以使用cognitoProvider
密鑰。
RoleMappings:
cognitoProvider:
IdentityProvider:
Fn::Join:
- ''
- - "cognito-idp.${self:provider.region}.amazonaws.com/"
- !Ref CustomerUserPool
- ':'
- !Ref CustomerUserPoolClient
AmbiguousRoleResolution: Deny
Type: Rules
RulesConfiguration:
Rules:
- Claim: cognito:groups
MatchType: Contains
Value: "clients"
RoleARN:
{ Fn::GetAtt: [UserIdentityPoolClientRole, Arn] }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.