我使用create_user_pool来创建新的 Cognito 用户池。我看到有一个SmsConfiguration
选项需要一个ExternalId
. 如果您使用 Cognito 门户为您的用户池设置 MFA,则此外部 ID(看起来像 UUID)将用于自动生成的 IAM SMS-Role。
ExternalId
如果我想手动(使用 boto3 或 AWS CLI)创建用户池和 IAM SMS 角色,我在哪里可以找到/生成值?
我使用create_user_pool来创建新的 Cognito 用户池。我看到有一个SmsConfiguration
选项需要一个ExternalId
. 如果您使用 Cognito 门户为您的用户池设置 MFA,则此外部 ID(看起来像 UUID)将用于自动生成的 IAM SMS-Role。
ExternalId
如果我想手动(使用 boto3 或 AWS CLI)创建用户池和 IAM SMS 角色,我在哪里可以找到/生成值?
没错,它是您在 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 -> 角色 -> 选择您的角色 -> 受信任的关系