Terraform 0.11

aws_cognito_identity_pool_roles_attachment




terraform

aws_cognito_identity_pool_roles_attachment

AWS Cognito Identity Pool Roles Attachment प्रदान करता है।

उदाहरण उपयोग

resource "aws_cognito_identity_pool" "main" {
  identity_pool_name               = "identity pool"
  allow_unauthenticated_identities = false

  supported_login_providers {
    "graph.facebook.com" = "7346241598935555"
  }
}

resource "aws_iam_role" "authenticated" {
  name = "cognito_authenticated"

  assume_role_policy = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "cognito-identity.amazonaws.com"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "cognito-identity.amazonaws.com:aud": "${aws_cognito_identity_pool.main.id}"
        },
        "ForAnyValue:StringLike": {
          "cognito-identity.amazonaws.com:amr": "authenticated"
        }
      }
    }
  ]
}
EOF
}

resource "aws_iam_role_policy" "authenticated" {
  name = "authenticated_policy"
  role = "${aws_iam_role.authenticated.id}"

  policy = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "mobileanalytics:PutEvents",
        "cognito-sync:*",
        "cognito-identity:*"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
EOF
}

resource "aws_cognito_identity_pool_roles_attachment" "main" {
  identity_pool_id = "${aws_cognito_identity_pool.main.id}"

  role_mapping {
    identity_provider         = "graph.facebook.com"
    ambiguous_role_resolution = "AuthenticatedRole"
    type                      = "Rules"

    mapping_rule {
      claim      = "isAdmin"
      match_type = "Equals"
      role_arn   = "${aws_iam_role.authenticated.arn}"
      value      = "paid"
    }
  }

  roles {
    "authenticated" = "${aws_iam_role.authenticated.arn}"
  }
}

तर्क संदर्भ

कॉग्निटो आइडेंटिटी पूल रोल्स अटैचमेंट तर्क लेआउट एक संरचना है जो कई उप-संसाधनों से बना है - ये संसाधन नीचे दिए गए हैं।

  • identity_pool_id (आवश्यक) - प्रारूप क्षेत्र में एक पहचान पूल आईडी: गाइड।
  • role_mapping (वैकल्पिक) - रोल मैपिंग की एक सूची।
  • roles (आवश्यक) - इस पूल से जुड़ी भूमिकाओं का मानचित्र। किसी दी गई भूमिका के लिए, कुंजी या तो "प्रमाणित" या "अप्रमाणित" होगी और मूल्य रोल एआरएन होगा।

रोल मैपिंग

  • पहचान_प्रोवाइडर (आवश्यक) - पहचान प्रदाता को पहचानने वाला एक स्ट्रिंग, उदाहरण के लिए, "graph.facebook.com" या "cognito-idp.us-east-1.amazonaws.com/us-east-1_abcdefreei:app_client_id"।
  • ambiguous_role_resolution (वैकल्पिक) - यदि कोई नियम नियम प्रकार के लिए दावे के मूल्य से मेल नहीं खाता है, या कोई संज्ञान नहीं है: तो पसंदीदा_रूप दावे का दावा किया जाता है और कई संज्ञानात्मक: भूमिकाएँ टोकन प्रकार के लिए मेल खाती हैं, तो कार्रवाई को निर्दिष्ट करती है। यदि आप प्रकार के रूप में टोकन या नियम निर्दिष्ट करते हैं, तो Required
  • mapping_rule (वैकल्पिक) - उपयोगकर्ताओं को भूमिकाओं के लिए मैपिंग के लिए उपयोग किए जाने वाले नियम कॉन्फ़िगरेशन । आप प्रति पहचान प्रदाता के लिए 25 नियम निर्दिष्ट कर सकते हैं। नियमों का मूल्यांकन क्रम में किया जाता है। पहले एक मैच की भूमिका निर्दिष्ट करता है।
  • type (आवश्यक) - भूमिका मानचित्रण प्रकार।

नियम विन्यास

  • claim (आवश्यक) - दावा नाम जो कि टोकन में मौजूद होना चाहिए, उदाहरण के लिए, "Admin" या "भुगतान किया हुआ"।
  • match_type (आवश्यक) - मैच की स्थिति जो यह निर्दिष्ट करती है कि IdP टोकन में दावा मूल्य कितनी बारीकी से मेल खाना चाहिए।
  • role_arn (आवश्यक) - भूमिका ARN।
  • value (आवश्यक) - एक संक्षिप्त स्ट्रिंग जो दावे से मेल खाना चाहिए, उदाहरण के लिए, "भुगतान किया" या "हाँ"।

संदर्भ संदर्भित करता है

तर्कों के अलावा, जो निर्यात किए जाते हैं, निम्नलिखित विशेषताएं निर्यात की जाती हैं:

  • id - पहचान पूल आईडी।
  • identity_pool_id (आवश्यक) - प्रारूप क्षेत्र में एक पहचान पूल आईडी: गाइड।
  • role_mapping (वैकल्पिक) - रोल मैपिंग की सूची।
  • roles (आवश्यक) - इस पूल से जुड़ी भूमिकाओं का मानचित्र। किसी दी गई भूमिका के लिए, कुंजी या तो "प्रमाणित" या "अप्रमाणित" होगी और मूल्य रोल एआरएन होगा।