2017-08-02 79 views
2

我正在嘗試編寫CloudFormation模板,以使用Google身份驗證和使用預先存在的角色創建新的Cognito身份池。通過Cloudformation將角色添加到AWS Cognito身份池

此代碼創建與谷歌認證一個新的身份池 -

Resources: 
cognitoid: 
    Type: "AWS::Cognito::IdentityPool" 
    Properties: 
    "AllowUnauthenticatedIdentities": false 
    "SupportedLoginProviders": { "accounts.google.com": "<Google client id>" } 

的角色,AWS::Cognito::IdentityPool不必須的性能,適於安裝一個角色什麼。

回答

2

終於能夠使它發揮作用 -

AWSTemplateFormatVersion: 2010-09-09 

Description: Stack to create a new Cognito identity pool with CloudFormation permissions to authenticate using a Google+ API 

Resources: 
CognitoId: 
    Type: "AWS::Cognito::IdentityPool" 
    Properties: 
    "AllowUnauthenticatedIdentities": false 
    "SupportedLoginProviders": { "accounts.google.com": "253488098773-olaksun66kcniitls6q7dne2asn23sdm.apps.googleusercontent.com" } 

IamRole: 
    Type: "AWS::IAM::Role" 
    Properties: 
    AssumeRolePolicyDocument: 
    Version: "2012-10-17" 
    Statement: 
     - 
     Effect: "Allow" 
     Action: 
      - "sts:AssumeRoleWithWebIdentity" 
     Condition: { "ForAnyValue:StringLike": {"cognito-identity.amazonaws.com:amr": "authenticated" }, "StringEquals": {"cognito-identity.amazonaws.com:aud": !Ref CognitoId}} 
     Principal: 
      Federated: 
      - "cognito-identity.amazonaws.com" 
    Path: "/" 
    "Policies": 
    - 
     PolicyName: main 
     PolicyDocument: 
     Version: "2012-10-17" 
     Statement: 
      - 
      Effect: "Allow" 
      Action: 
       - "cloudformation:CreateStack" 
       - "cloudformation:UpdateStack" 
       - "cloudformation:DeleteStack" 
       - "cloudformation:CreateUploadBucket" 
       - "cloudformation:DescribeStacks" 
       - "cloudformation:DescribeStackEvents" 
       - "cloudformation:GetTemplateSummary" 
       - "cloudformation:ListStacks" 
       - "cloudformation:ListStackResources" 
       - "s3:CreateBucket" 
       - "s3:GetObject" 
       - "s3:PutObject" 
       - "mobileanalytics:PutEvent" 
       - "cognito-sync:*" 
       - "cognito-identity:*" 
      Resource: "*" 
IdentityPoolRoleAttachment: 
    Type: "AWS::Cognito::IdentityPoolRoleAttachment" 
    Properties: 
    IdentityPoolId: !Ref CognitoId 
    Roles: {"authenticated": !GetAtt IamRole.Arn} 
+0

這幫助,謝謝:) –

相關問題