在Cognito用户池中的SmsConfiguration的外部ID的位置

时间:2018-03-02 15:51:39

标签: amazon-web-services boto3 aws-cli aws-cognito aws-iam

我使用create_user_pool创建新的Cognito用户池。我看到https://developers.google.com/cast/docs/caf_receiver_basic 选项需要SmsConfiguration。 如果使用Cognito门户为您的用户池设置MFA,则此外部ID(看起来像UUID)将用于自动生成的IAM SMS-Role。

如果我想手动(使用boto3或AWS CLI)创建用户池和IAM SMS角色,我在哪里可以找到/生成ExternalId的值?

我的MFA设置如下所示: enter image description here

1 个答案:

答案 0 :(得分:1)

您是对的,它是您在IAM角色中定义的UUID。以下是带有外部ID的示例CloudFormation模板 -

CognitoSMSRole:
  Type: AWS::IAM::Role
  Properties:
    AssumeRolePolicyDocument: 
      Version: "2012-10-17"
      Statement: 
        - Effect: "Allow"
          Principal: 
            Service: 
              - "cognito-idp.amazonaws.com"
          Action: 
            - "sts:AssumeRole"
          Condition:
            StringEquals:
              "sts:ExternalId": 'this-is-my-external-id'
    Path: "/"
CognitoSMSPolicy: 
  Type: "AWS::IAM::Policy"
  Properties: 
    PolicyName: "CognitoSMSPolicy"
    PolicyDocument: 
      Version: "2012-10-17"
      Statement: 
        - Effect: "Allow"
          Action: 
            - "sns:publish"
          Resource: 
            - "*"
    Roles: 
      - Ref: CognitoSMSRole

您还可以在控制台中找到外部ID。

IAM - >角色 - >选择你的角色 - >值得信赖的关系

ExternalID - AWS Console