{"id":23162,"date":"2026-04-27T19:45:40","date_gmt":"2026-04-27T19:45:40","guid":{"rendered":"https:\/\/umang.pk\/2026\/04\/27\/aws-%da%a9%db%92-%d9%84%db%8c%db%92-github-%d8%a7%db%8c%da%a9%d8%b4%d9%86%d8%b2-%d9%85%db%8c%da%ba-openid-connect-oidc-%da%a9%d9%88-%da%a9%db%8c%d8%b3%db%92-%d8%aa%d8%b1%d8%aa%db%8c%d8%a8-%d8%af\/"},"modified":"2026-04-27T19:45:41","modified_gmt":"2026-04-27T19:45:41","slug":"aws-%da%a9%db%92-%d9%84%db%8c%db%92-github-%d8%a7%db%8c%da%a9%d8%b4%d9%86%d8%b2-%d9%85%db%8c%da%ba-openid-connect-oidc-%da%a9%d9%88-%da%a9%db%8c%d8%b3%db%92-%d8%aa%d8%b1%d8%aa%db%8c%d8%a8-%d8%af","status":"publish","type":"post","link":"https:\/\/umang.pk\/en_us\/2026\/04\/27\/aws-%da%a9%db%92-%d9%84%db%8c%db%92-github-%d8%a7%db%8c%da%a9%d8%b4%d9%86%d8%b2-%d9%85%db%8c%da%ba-openid-connect-oidc-%da%a9%d9%88-%da%a9%db%8c%d8%b3%db%92-%d8%aa%d8%b1%d8%aa%db%8c%d8%a8-%d8%af\/","title":{"rendered":"AWS \u06a9\u06d2 \u0644\u06cc\u06d2 GitHub \u0627\u06cc\u06a9\u0634\u0646\u0632 \u0645\u06cc\u06ba OpenID Connect (OIDC) \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4"},"content":{"rendered":"\n<div id=\"\">\n<p>\u0627\u06af\u0631 \u0622\u067e \u0646\u06d2 \u0627\u0633\u06d2 \u0628\u0686\u0627 \u0644\u06cc\u0627\u06d4 <code>AWS_ACCESS_KEY_ID<\/code> \u0627\u0648\u0631 <code>AWS_SECRET_ACCESS_KEY<\/code> AWS \u0645\u06cc\u06ba \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 GitHub \u0633\u06cc\u06a9\u0631\u06cc\u0679 \u0627\u06a9\u06cc\u0644\u0627 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0633\u0628 \u0633\u06d2 \u0639\u0627\u0645 \u0637\u0631\u06cc\u0642\u06c1 \u06c1\u06d2 \u0627\u0648\u0631 CI\/CD \u067e\u0627\u0626\u067e \u0644\u0627\u0626\u0646\u0648\u06ba \u0645\u06cc\u06ba \u0633\u0628 \u0633\u06d2 \u0628\u0691\u06d2 \u062d\u0641\u0627\u0638\u062a\u06cc \u062e\u0637\u0631\u0627\u062a \u0645\u06cc\u06ba \u0633\u06d2 \u0627\u06cc\u06a9 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633 \u06a9\u06cc \u0648\u062c\u06c1 \u06cc\u06c1 \u06c1\u06d2: \u062c\u0627\u0645\u062f \u0627\u0633\u0646\u0627\u062f \u06a9\u06cc \u0645\u06cc\u0639\u0627\u062f \u062e\u0648\u062f \u062e\u062a\u0645 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u063a\u0644\u0637 \u06a9\u0646\u0641\u06cc\u06af\u0631\u0688 \u0648\u0631\u06a9 \u0641\u0644\u0648\u060c \u067e\u0628\u0644\u06a9 \u0641\u0648\u0631\u06a9\u060c \u06cc\u0627 \u06a9\u0645\u067e\u0631\u0648\u0645\u0627\u0626\u0632\u0688 \u0631\u06cc\u067e\u0648\u0632\u0679\u0631\u06cc \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0644\u06cc\u06a9 \u06c1\u0648 \u062c\u0627\u0626\u06d2 \u062a\u0648 \u062d\u0645\u0644\u06c1 \u0622\u0648\u0631 \u0622\u067e \u06a9\u06d2 AWS \u0645\u0627\u062d\u0648\u0644 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u062c\u0627\u0631\u06cc \u0631\u06a9\u06be \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u0627\u0633\u06d2 \u062f\u0633\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u062a\u0628\u062f\u06cc\u0644 \u0646\u06c1 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4 \u0627\u0648\u0631 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u0679\u06cc\u0645\u06cc\u06ba \u0627\u0646\u06c1\u06cc\u06ba \u06a9\u0627\u0641\u06cc \u0628\u0627\u0631 \u0646\u06c1\u06cc\u06ba \u06af\u06be\u0645\u0627\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>OpenID Connect (OIDC) \u0627\u0633 \u0645\u0633\u0626\u0644\u06d2 \u06a9\u0648 \u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u062d\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u067e\u0646\u06d2 \u0627\u0633\u0646\u0627\u062f \u06a9\u0648 \u0637\u0648\u06cc\u0644 \u0639\u0631\u0635\u06d2 \u062a\u06a9 \u0630\u062e\u06cc\u0631\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c GitHub \u0627\u06cc\u06a9\u0634\u0646\u0632 \u0622\u067e \u0633\u06d2 \u067e\u0648\u0686\u06be\u062a\u0627 \u06c1\u06d2: <strong>\u0645\u062e\u062a\u0635\u0631 \u0645\u062f\u062a \u06a9\u0627 \u0679\u0648\u06a9\u0646<\/strong> \u06c1\u0631 \u0628\u0627\u0631 \u062c\u0628 \u06a9\u0648\u0626\u06cc \u0648\u0631\u06a9 \u0641\u0644\u0648 \u0686\u0644\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0627\u0633\u06d2 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a AWS \u0633\u06d2 \u067e\u06cc\u0634 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u06af\u06be\u0648\u0645\u0646\u06d2 \u06a9\u06d2 \u0644\u0626\u06d2 \u06a9\u0648\u0626\u06cc \u0631\u0627\u0632 \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4 \u0644\u06cc\u06a9 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0648\u0626\u06cc \u0627\u0633\u0646\u0627\u062f \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4 \u06a9\u0648\u0626\u06cc \u062f\u0633\u062a\u06cc \u06a9\u0644\u06cc\u062f \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0645 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u0645\u06cc\u06ba\u060c \u0622\u067e \u0633\u06cc\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 GitHub \u0627\u06cc\u06a9\u0634\u0646\u0632 \u0627\u0648\u0631 AWS \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0634\u0631\u0648\u0639 \u0633\u06d2 OIDC \u062a\u0648\u062b\u06cc\u0642 \u06a9\u06cc\u0633\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc \u062c\u0627\u0626\u06d2\u06d4 \u0628\u0627\u0644\u0622\u062e\u0631\u060c \u0622\u067e \u06a9\u0627 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u0645\u062d\u0641\u0648\u0638 \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 AWS \u0633\u06d2 \u062a\u0635\u062f\u06cc\u0642 \u0634\u062f\u06c1 \u06c1\u06d2 \u0628\u063a\u06cc\u0631 \u06a9\u0633\u06cc \u0627\u06cc\u06a9 \u0631\u0633\u0627\u0626\u06cc \u06a9\u0644\u06cc\u062f \u06a9\u0648 \u0630\u062e\u06cc\u0631\u06c1 \u06a9\u0626\u06d2\u06d4<\/p>\n<h2 id=\"heading-table-of-contents\">\u0627\u0646\u0688\u06cc\u06a9\u0633<\/h2>\n<h2 id=\"heading-what-is-openid-connect-oidc\">\u0627\u0648\u067e\u0646 \u0622\u0626\u06cc \u0688\u06cc \u06a9\u0646\u06cc\u06a9\u0679 (OIDC) \u06a9\u06cc\u0627 \u06c1\u06d2\u061f<\/h2>\n<p>OpenID Connect \u0627\u06cc\u06a9 \u0634\u0646\u0627\u062e\u062a\u06cc \u067e\u0631\u0648\u0679\u0648\u06a9\u0648\u0644 \u06c1\u06d2 \u062c\u0648 OAuth 2.0 \u067e\u0631 \u0628\u0646\u0627\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0646\u0638\u0627\u0645 \u06a9\u0648 \u0645\u0634\u062a\u0631\u06a9\u06c1 \u0631\u0627\u0632 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0679\u0648\u06a9\u0646 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0634\u0646\u0627\u062e\u062a \u06a9\u06cc \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>GitHub \u0627\u06cc\u06a9\u0634\u0646\u0632 \u0627\u0648\u0631 AWS \u06a9\u06d2 \u062a\u0646\u0627\u0638\u0631 \u0645\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p><strong>\u06af\u0679 \u06c1\u0628<\/strong> \u06a9\u0631\u062f\u0627\u0631 \u0627\u062f\u0627 \u06a9\u0631\u06cc\u06ba <strong>\u0634\u0646\u0627\u062e\u062a \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0646\u0646\u062f\u06c1 (IdP)<\/strong>. \u06c1\u0631 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u06d2 \u0639\u0645\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0633\u062a\u062e\u0637 \u0634\u062f\u06c1 JSON \u0648\u06cc\u0628 \u0679\u0648\u06a9\u0646 (JWT) \u062c\u0627\u0631\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>AWS<\/strong> \u06a9\u0631\u062f\u0627\u0631 \u0627\u062f\u0627 \u06a9\u0631\u06cc\u06ba <strong>\u0633\u0631\u0648\u0633 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u0627<\/strong>. GitHub \u0645\u06cc\u06ba \u0627\u067e\u0646\u06cc \u0639\u0648\u0627\u0645\u06cc \u06a9\u0644\u06cc\u062f \u06a9\u06d2 \u062e\u0644\u0627\u0641 \u0627\u0633 \u0679\u0648\u06a9\u0646 \u06a9\u06cc \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0633\u06d2 \u0639\u0627\u0631\u0636\u06cc AWS \u0627\u0633\u0646\u0627\u062f \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u0633\u0646\u0627\u062f \u062c\u0648 AWS \u0648\u0627\u067e\u0633 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba \u0648\u06c1 \u0642\u0644\u06cc\u0644 \u0627\u0644\u0645\u062f\u062a\u06cc \u06c1\u06cc\u06ba (\u0628\u0637\u0648\u0631 \u0688\u06cc\u0641\u0627\u0644\u0679 \u0627\u06cc\u06a9 \u06af\u06be\u0646\u0679\u06c1 \u062a\u06a9 \u062f\u0631\u0633\u062a) \u0627\u0648\u0631 \u0622\u067e \u06a9\u06d2 \u0628\u06cc\u0627\u0646 \u06a9\u0631\u062f\u06c1 IAM \u06a9\u0631\u062f\u0627\u0631 \u06a9\u06d2 \u062f\u0627\u0626\u0631\u06c1 \u06a9\u0627\u0631 \u0645\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u067e\u0631\u060c \u0648\u06c1 \u0627\u0633\u0646\u0627\u062f \u0636\u0627\u0626\u0639 \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u06cc\u06c1 \u0645\u0627\u0688\u0644 \u06c1\u06d2\u06d4 <strong>\u0641\u06cc\u0688\u0631\u06cc\u0634\u0646 ID<\/strong>. \u06cc\u06c1 \u0648\u06c1\u06cc \u062a\u0635\u0648\u0631 \u06c1\u06d2 \u062c\u0628 \u0622\u067e \u062a\u06cc\u0633\u0631\u06d2 \u0641\u0631\u06cc\u0642 \u06a9\u06cc \u0648\u06cc\u0628 \u0633\u0627\u0626\u0679\u0633 \u067e\u0631 Google \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0633\u0627\u0626\u0646 \u0627\u0646 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0641\u0631\u0642 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0635\u0627\u0631\u0641 \u0644\u0627\u06af \u0627\u0646 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u0648\u0631\u06a9 \u0641\u0644\u0648 \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-how-oidc-works-between-github-actions-and-aws\">GitHub \u0627\u06cc\u06a9\u0634\u0646\u0632 \u0627\u0648\u0631 AWS \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 OIDC \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/h2>\n<p>YAML \u06a9\u06cc \u0627\u06cc\u06a9 \u0644\u0627\u0626\u0646 \u0644\u06a9\u06be\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0628\u06c1\u0627\u0624 \u06a9\u0648 \u0633\u0645\u062c\u06be\u0646\u0627 \u0627\u0686\u06be\u0627 \u062e\u06cc\u0627\u0644 \u06c1\u06d2\u06d4 \u0646\u0626\u06cc \u0679\u06cc\u06a9\u0646\u0627\u0644\u0648\u062c\u06cc \u06cc\u0627 \u062a\u0635\u0648\u0631 \u06a9\u0648 \u0646\u0627\u0641\u0630 \u06a9\u0631\u062a\u06d2 \u0648\u0642\u062a \u06cc\u06c1 \u0627\u06cc\u06a9 \u0630\u0627\u062a\u06cc \u0646\u0642\u0637\u06c1 \u0646\u0638\u0631 \u06c1\u06d2\u06d4 \u06c1\u0631 \u0628\u0627\u0631 \u062c\u0628 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u0686\u0644\u062a\u0627 \u06c1\u06d2 \u062a\u0648 \u06cc\u06c1\u0627\u06ba \u06a9\u06cc\u0627 \u06c1\u0648\u062a\u0627 \u06c1\u06d2:<\/p>\n<p>\u06cc\u06c1 \u062e\u0627\u06a9\u06c1 OpenID Connect (OIDC) \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 GitHub \u0627\u06cc\u06a9\u0634\u0646\u0632 \u0627\u0648\u0631 AWS \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0645\u062d\u0641\u0648\u0638 \u062a\u0635\u062f\u06cc\u0642\u06cc \u0628\u06c1\u0627\u0624 \u06a9\u0648 \u0638\u0627\u06c1\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0633 \u0633\u06d2 GitHub \u0645\u06cc\u06ba \u0637\u0648\u06cc\u0644 \u0627\u0644\u0645\u062f\u062a AWS \u0627\u0633\u0646\u0627\u062f \u06a9\u0648 \u0630\u062e\u06cc\u0631\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u062e\u062a\u0645 \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4 \u0645\u0631\u062d\u0644\u06c1 \u0648\u0627\u0631 \u06a9\u06cc\u0627 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u06cc\u06c1\u0627\u06ba \u06c1\u06d2:<\/p>\n<p><strong>1. \u0627\u0628\u062a\u062f\u0627\u0626\u06cc \u062a\u0648\u062b\u06cc\u0642 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a<\/strong><\/p>\n<p>\u062c\u0628 \u0627\u06cc\u06a9 GitHub \u0627\u06cc\u06a9\u0634\u0646 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u0634\u0631\u0648\u0639 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u060c \u0627\u06cc\u06af\u0632\u06cc\u06a9\u06cc\u0648\u0679\u0631 (\u0648\u0631\u0686\u0648\u0626\u0644 \u0645\u0634\u06cc\u0646 \u062c\u0648 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u0686\u0644\u0627\u062a\u06cc \u06c1\u06d2) GitHub \u06a9\u06d2 OIDC \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0646\u0646\u062f\u06c1 \u0633\u06d2 JSON \u0648\u06cc\u0628 \u0679\u0648\u06a9\u0646 (JWT) \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>https:\/\/token.actions.githubusercontent.com<\/code>.<\/p>\n<p><strong>2. \u0679\u0648\u06a9\u0646 \u062c\u0627\u0631\u06cc \u06a9\u0631\u0646\u0627<\/strong><\/p>\n<p>GitHub \u06a9\u0627 OIDC \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0646\u0646\u062f\u06c1 JWT \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633 \u067e\u0631 \u062f\u0633\u062a\u062e\u0637 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0633 \u0645\u06cc\u06ba \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0627\u06c1\u0645 \u062f\u0639\u0648\u06d2 (\u0645\u06cc\u0679\u0627 \u0688\u06cc\u0679\u0627) \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u0646 \u062f\u0639\u0648\u0648\u06ba \u0645\u06cc\u06ba \u062a\u0641\u0635\u06cc\u0644\u0627\u062a \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba \u062c\u06cc\u0633\u06d2 \u06a9\u06c1 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u062c\u0633 \u0631\u06cc\u067e\u0648\u0632\u0679\u0631\u06cc \u067e\u0631 \u0686\u0644 \u0631\u06c1\u0627 \u06c1\u06d2\u060c \u0648\u06c1 \u0628\u0631\u0627\u0646\u0686 \u062c\u0633 \u0646\u06d2 \u0627\u0633\u06d2 \u0645\u062a\u062d\u0631\u06a9 \u06a9\u06cc\u0627\u060c \u0648\u06c1 \u0645\u0627\u062d\u0648\u0644 \u062c\u0633 \u0645\u06cc\u06ba \u06cc\u06c1 \u0686\u0644 \u0631\u06c1\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u062f\u06cc\u06af\u0631 \u0645\u062a\u0639\u0644\u0642\u06c1 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u062c\u0648 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u06cc \u0634\u0646\u0627\u062e\u062a \u06a9\u0648 \u062b\u0627\u0628\u062a \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<p><strong>3. \u0679\u0648\u06a9\u0646 \u06a9\u06cc \u062a\u0635\u062f\u06cc\u0642<\/strong><\/p>\n<p>GitHub \u0627\u06cc\u06a9\u0634\u0646\u0632 \u0627\u06cc\u06af\u0632\u06cc\u06a9\u06cc\u0648\u0679\u0631 \u0627\u0633 \u062f\u0633\u062a\u062e\u0637 \u0634\u062f\u06c1 JWT \u06a9\u0648 AWS \u0633\u06cc\u06a9\u06cc\u0648\u0631\u0679\u06cc \u0679\u0648\u06a9\u0646 \u0633\u0631\u0648\u0633 (STS) \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 AWS STS GitHub \u067e\u0631 \u0639\u0648\u0627\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 \u062f\u0633\u062a\u06cc\u0627\u0628 \u0627\u0646\u06a9\u0631\u067e\u0634\u0646 \u06a9\u06cc\u0632 \u06a9\u06d2 \u062e\u0644\u0627\u0641 JWT \u062f\u0633\u062a\u062e\u0637 \u06a9\u06cc \u062a\u0648\u062b\u06cc\u0642 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062a\u0627\u06a9\u06c1 \u06cc\u06c1 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u06d2 \u06a9\u06c1 \u0679\u0648\u06a9\u0646 \u0645\u0633\u062a\u0646\u062f \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0686\u06be\u06cc\u0691 \u0686\u06be\u0627\u0691 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc \u06af\u0626\u06cc \u06c1\u06d2\u06d4<\/p>\n<p><strong>4. \u0679\u0631\u0633\u0679 \u067e\u0627\u0644\u06cc\u0633\u06cc \u06a9\u06cc \u062a\u0635\u062f\u06cc\u0642<\/strong><\/p>\n<p>AWS STS IAM \u0631\u0648\u0644 \u067e\u0631 \u062a\u0634\u06a9\u06cc\u0644 \u0634\u062f\u06c1 \u0627\u0639\u062a\u0645\u0627\u062f \u06a9\u06cc \u067e\u0627\u0644\u06cc\u0633\u06cc \u06a9\u06cc \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0679\u0631\u0633\u0679 \u067e\u0627\u0644\u06cc\u0633\u06cc \u0628\u062a\u0627\u062a\u06cc \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0648\u0646 \u0633\u06d2 GitHub \u0631\u06cc\u067e\u0648\u0632\u0679\u0631\u06cc\u0632\u060c \u0628\u0631\u0627\u0646\u0686\u0632\u060c \u06cc\u0627 \u0645\u0627\u062d\u0648\u0644 \u0627\u0633 \u06a9\u0631\u062f\u0627\u0631 \u06a9\u0648 \u0633\u0646\u0628\u06be\u0627\u0644 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u06af\u0631 JWT \u0645\u06cc\u06ba \u062f\u0639\u0648\u06d2 \u0627\u0639\u062a\u0645\u0627\u062f \u06a9\u06cc \u067e\u0627\u0644\u06cc\u0633\u06cc \u06a9\u06cc \u0634\u0631\u0627\u0626\u0637 \u0633\u06d2 \u0645\u0645\u0627\u062b\u0644 \u06c1\u06cc\u06ba\u060c \u062a\u0648\u062b\u06cc\u0642 \u06a9\u0627\u0645\u06cc\u0627\u0628 \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p><strong>5. \u0639\u0627\u0631\u0636\u06cc \u0633\u0631\u0679\u06cc\u0641\u06a9\u06cc\u0679 \u06a9\u0627 \u0627\u062c\u0631\u0627\u0621<\/strong><\/p>\n<p>\u062a\u0635\u062f\u06cc\u0642 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c AWS STS GitHub \u0627\u06cc\u06a9\u0634\u0646\u0632 \u0627\u06cc\u06af\u0632\u06cc\u06a9\u06cc\u0648\u0679\u0631 \u06a9\u0648 \u0639\u0627\u0631\u0636\u06cc \u062d\u0641\u0627\u0638\u062a\u06cc \u0627\u0633\u0646\u0627\u062f \u0648\u0627\u067e\u0633 \u06a9\u0631 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0646 \u0627\u0633\u0646\u0627\u062f \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0631\u0633\u0627\u0626\u06cc \u06a9\u0644\u06cc\u062f ID\u060c \u062e\u0641\u06cc\u06c1 \u0631\u0633\u0627\u0626\u06cc \u06a9\u0644\u06cc\u062f\u060c \u0627\u0648\u0631 \u0633\u06cc\u0634\u0646 \u0679\u0648\u06a9\u0646 \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba \u062c\u0648 \u0645\u062d\u062f\u0648\u062f \u0648\u0642\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0631\u0633\u062a \u06c1\u06cc\u06ba (\u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 1 \u06af\u06be\u0646\u0679\u06c1 \u0628\u0630\u0631\u06cc\u0639\u06c1 \u0688\u06cc\u0641\u0627\u0644\u0679\u060c \u0644\u06cc\u06a9\u0646 \u0627\u0633\u06d2 12 \u06af\u06be\u0646\u0679\u06d2 \u062a\u06a9 \u06a9\u0646\u0641\u06cc\u06af\u0631 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2)\u06d4<\/p>\n<p><strong>6. AWS API \u0631\u0633\u0627\u0626\u06cc<\/strong><\/p>\n<p>GitHub \u0627\u06cc\u06a9\u0634\u0646 \u0631\u0646\u0631 \u0627\u0646 \u0639\u0627\u0631\u0636\u06cc \u0627\u0633\u0646\u0627\u062f \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 AWS \u0648\u0633\u0627\u0626\u0644 \u067e\u0631 API \u06a9\u0627\u0644\u0648\u06ba \u06a9\u06cc \u062a\u0648\u062b\u06cc\u0642 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062c\u06cc\u0633\u06d2 \u06a9\u06c1 Docker \u0627\u0645\u06cc\u062c \u06a9\u0648 ECR \u0645\u06cc\u06ba \u062f\u06be\u06a9\u06cc\u0644\u0646\u0627\u060c ECS \u0633\u0631\u0648\u0633 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u0646\u0627\u060c S3 \u0628\u0627\u0644\u0679\u06cc \u067e\u0631 \u0644\u06a9\u06be\u0646\u0627\u060c \u06cc\u0627 Lambda \u0641\u0646\u06a9\u0634\u0646 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u0646\u0627\u06d4<\/p>\n<p>\u0627\u06c1\u0645 \u0646\u06a9\u0627\u062a: <strong>AWS \u0622\u067e \u06a9\u06d2 GitHub \u06a9\u06cc \u0627\u0633\u0646\u0627\u062f \u0646\u06c1\u06cc\u06ba \u062f\u06cc\u06a9\u06be \u0633\u06a9\u062a\u0627\u060c \u0627\u0648\u0631 GitHub \u0622\u067e \u06a9\u06cc AWS \u0627\u0633\u0646\u0627\u062f \u0646\u06c1\u06cc\u06ba \u062f\u06cc\u06a9\u06be \u0633\u06a9\u062a\u0627\u06d4<\/strong> JWTs \u0648\u06c1 \u0648\u0627\u062d\u062f \u0627\u0634\u06cc\u0627\u0621 \u06c1\u06cc\u06ba \u062c\u0646 \u06a9\u0627 \u062a\u0628\u0627\u062f\u0644\u06c1 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0646 \u067e\u0631 \u062f\u0633\u062a\u062e\u0637\u060c \u062f\u0627\u0626\u0631\u06c1 \u06a9\u0627\u0631 \u0627\u0648\u0631 \u0642\u0644\u06cc\u0644 \u0645\u062f\u062a\u06cc \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-prerequisites\">\u0634\u0631\u0637\u06cc\u06ba<\/h2>\n<p>\u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06c1\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p>\u0646\u06c1\u06cc\u06ba <strong>AWS \u0627\u06a9\u0627\u0624\u0646\u0679<\/strong> \u0622\u067e \u06a9\u0648 \u0634\u0646\u0627\u062e\u062a \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0627\u0648\u0631 \u06a9\u0631\u062f\u0627\u0631 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 IAM \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u06a9\u0648\u0626\u06cc \u0631\u0627\u0633\u062a\u06c1 \u0646\u06c1\u06cc\u06ba <strong>GitHub \u0630\u062e\u06cc\u0631\u06c1<\/strong> \u062c\u06c1\u0627\u06ba (\u0639\u0648\u0627\u0645\u06cc \u06cc\u0627 \u0646\u062c\u06cc) \u0648\u0631\u06a9 \u0641\u0644\u0648 \u0686\u0644\u06d2 \u06af\u0627\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0628\u0646\u06cc\u0627\u062f\u06cc \u0639\u0644\u0645 <strong>\u06af\u0679 \u06c1\u0628 \u0622\u067e\u0631\u06cc\u0634\u0646\u0632<\/strong>\u0644\u06a9\u06be\u0646\u0627 \u062c\u0627\u0646\u062a\u06d2 \u06c1\u06cc\u06ba <code>.yml<\/code> \u0648\u0631\u06a9 \u0641\u0644\u0648 \u0641\u0627\u0626\u0644<\/p>\n<\/li>\n<li>\n<p>\u0628\u0646\u06cc\u0627\u062f\u06cc \u0639\u0644\u0645 <strong>AWS IAM<\/strong> \u06a9\u0631\u062f\u0627\u0631\u060c \u067e\u0627\u0644\u06cc\u0633\u06cc\u0627\u06ba\u060c \u0627\u0648\u0631 \u0627\u062c\u0627\u0632\u062a\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u06a9\u06c1 <strong>AWS CLI<\/strong> \u0627\u0646\u0633\u0679\u0627\u0644 \u0627\u0648\u0631 \u06a9\u0646\u0641\u06cc\u06af\u0631\u0688 (\u0627\u062e\u062a\u06cc\u0627\u0631\u06cc\u060c \u0644\u06cc\u06a9\u0646 \u062a\u0635\u062f\u06cc\u0642 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0641\u06cc\u062f)\u06d4 \u0622\u067e \u06a9\u0648 AWS \u0645\u0627\u06c1\u0631 \u0628\u0646\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u06c1\u0631 \u0642\u062f\u0645 \u0645\u06cc\u06ba \u06a9\u0646\u0633\u0648\u0644 \u06a9\u0627 \u062f\u0631\u0633\u062a \u0631\u0627\u0633\u062a\u06c1 \u0627\u0648\u0631 \u0645\u0637\u0644\u0648\u0628\u06c1 \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646 \u0627\u0642\u062f\u0627\u0631 \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<h2 id=\"heading-step-1-create-an-iam-oidc-identity-provider-in-aws\">\u0645\u0631\u062d\u0644\u06c1 1: AWS \u0645\u06cc\u06ba \u0627\u06cc\u06a9 IAM OIDC \u0634\u0646\u0627\u062e\u062a \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0646\u0646\u062f\u06c1 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h2>\n<p>\u067e\u06c1\u0644\u06cc \u0686\u06cc\u0632 \u062c\u0648 \u0622\u067e \u06a9\u0648 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2 \u0648\u06c1 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 AWS \u06a9\u0648 GitHub \u067e\u0631 \u0627\u067e\u0646\u06d2 \u0634\u0646\u0627\u062e\u062a\u06cc \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0646\u0646\u062f\u06c1 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0628\u06be\u0631\u0648\u0633\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u0648 \u06a9\u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0641\u06cc AWS \u0627\u06a9\u0627\u0624\u0646\u0679 \u0627\u06cc\u06a9 \u0648\u0642\u062a\u06cc \u0633\u06cc\u0679 \u0627\u067e \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-how-to-do-it-in-the-aws-console\">\u0627\u0633\u06d2 AWS \u06a9\u0646\u0633\u0648\u0644 \u0645\u06cc\u06ba \u06a9\u06cc\u0633\u06d2 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<ol>\n<li>\n<p>AWS IAM \u06a9\u0646\u0633\u0648\u0644 \u06a9\u06be\u0648\u0644\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0628\u0627\u0626\u06cc\u06ba \u0633\u0627\u0626\u0688\u0628\u0627\u0631 \u0645\u06cc\u06ba\u060c \u0634\u0646\u0627\u062e\u062a \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u067e\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0641\u0631\u0627\u06c1\u0645 \u06a9\u0646\u0646\u062f\u06c1 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba \u067e\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0641\u0631\u0627\u06c1\u0645 \u06a9\u0646\u0646\u062f\u06c1 \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 OpenID \u06a9\u0646\u06cc\u06a9\u0679 \u06a9\u0648 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0641\u0631\u0627\u06c1\u0645 \u06a9\u0646\u0646\u062f\u06c1 URL \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u062f\u0631\u062c \u06a9\u0631\u06cc\u06ba:<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"language-plaintext\">https:\/\/token.actions.githubusercontent.com\n<\/code><\/pre>\n<ol>\n<li>\u0645\u0646\u0632\u0644 \u0645\u06cc\u06ba\u060c \u062f\u0631\u062c \u06a9\u0631\u06cc\u06ba:<\/li>\n<\/ol>\n<pre><code class=\"language-plaintext\">sts.amazonaws.com\n<\/code><\/pre>\n<ol>\n<li>\u0641\u0631\u0627\u06c1\u0645 \u06a9\u0646\u0646\u062f\u06c1 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba \u067e\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4<\/li>\n<\/ol>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/AWS-\u06a9\u06d2-\u0644\u06cc\u06d2-GitHub-\u0627\u06cc\u06a9\u0634\u0646\u0632-\u0645\u06cc\u06ba-OpenID-Connect-OIDC-\u06a9\u0648.png\" alt=\"AWS IAM \u06a9\u0646\u0633\u0648\u0644 GitHub \u0627\u06cc\u06a9\u0634\u0646\u0632 \u06a9\u0648 \u062f\u06a9\u06be\u0627 \u0631\u06c1\u0627 \u06c1\u06d2 \u0634\u0646\u0627\u062e\u062a \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0646\u0646\u062f\u06c1 \u0641\u0627\u0631\u0645 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba OIDC \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u0634\u06a9\u06cc\u0644 \u0634\u062f\u06c1\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<h3 id=\"heading-how-to-do-it-with-the-aws-cli\">AWS CLI \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u0633\u06d2 \u06a9\u06cc\u0633\u06d2 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0627\u06af\u0631 \u0622\u067e \u0679\u0631\u0645\u06cc\u0646\u0644 \u06a9\u0648 \u062a\u0631\u062c\u06cc\u062d \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0648 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0645\u0627\u0646\u0688 \u06a9\u0648 \u0686\u0644\u0627\u0626\u06cc\u06ba:<\/p>\n<pre><code class=\"language-shell\">aws iam create-open-id-connect-provider \n  --url https:\/\/token.actions.githubusercontent.com \n  --client-id-list sts.amazonaws.com \n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1777319140_272_AWS-\u06a9\u06d2-\u0644\u06cc\u06d2-GitHub-\u0627\u06cc\u06a9\u0634\u0646\u0632-\u0645\u06cc\u06ba-OpenID-Connect-OIDC-\u06a9\u0648.png\" alt=\"terminal-oidc-connect-create\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u06cc\u06c1 \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u0628\u0646\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f \u0638\u0627\u06c1\u0631 \u06c1\u0648\u06af\u0627\u06d4 <code>token.actions.githubusercontent.com<\/code> \u0630\u06cc\u0644 \u0645\u06cc\u06ba \u062f\u0631\u062c <strong>\u0634\u0646\u0627\u062e\u062a \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u0627<\/strong> IAM \u06a9\u0646\u0633\u0648\u0644 \u0645\u06cc\u06ba\u06d4 \u0627\u0633 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0646\u0646\u062f\u06c1 \u06a9\u0627 \u062d\u0648\u0627\u0644\u06c1 \u0627\u06af\u0644\u06d2 \u0645\u0631\u062d\u0644\u06d2 \u0645\u06cc\u06ba IAM \u0631\u0648\u0644 \u0679\u0631\u0633\u0679 \u067e\u0627\u0644\u06cc\u0633\u06cc \u0645\u06cc\u06ba \u062f\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1777319140_259_AWS-\u06a9\u06d2-\u0644\u06cc\u06d2-GitHub-\u0627\u06cc\u06a9\u0634\u0646\u0632-\u0645\u06cc\u06ba-OpenID-Connect-OIDC-\u06a9\u0648.png\" alt=\"AWS \u0645\u06cc\u06ba oidc \u06a9\u0646\u06cc\u06a9\u0679\u06cc\u0648\u06cc\u0679\u06cc \u06a9\u06cc \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0631\u06cc\u06ba\u06d4\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<h2 id=\"heading-step-2-create-an-iam-role-with-a-trust-policy\">\u0645\u0631\u062d\u0644\u06c1 2: \u0627\u0639\u062a\u0645\u0627\u062f \u06a9\u06cc \u067e\u0627\u0644\u06cc\u0633\u06cc \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9 IAM \u06a9\u0631\u062f\u0627\u0631 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h2>\n<p>\u0627\u0628 \u0622\u067e \u06a9\u0648 \u0627\u067e\u0646\u06d2 GitHub \u0627\u06cc\u06a9\u0634\u0646\u0632 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u0648 \u0633\u0646\u0628\u06be\u0627\u0644\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 IAM \u06a9\u0631\u062f\u0627\u0631 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u0631\u062f\u0627\u0631 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0679\u0631\u0633\u0679 \u067e\u0627\u0644\u06cc\u0633\u06cc \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0648\u0646 \u0633\u06d2 \u0630\u062e\u06cc\u0631\u06d2 \u0627\u0648\u0631 \u0634\u0627\u062e\u06cc\u06ba \u0627\u0633\u0646\u0627\u062f \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631 \u0633\u06a9\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-how-to-create-the-iam-role-in-the-aws-console\">AWS \u06a9\u0646\u0633\u0648\u0644 \u0645\u06cc\u06ba IAM \u0631\u0648\u0644 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/h3>\n<ol>\n<li>\n<p>AWS IAM \u06a9\u0646\u0633\u0648\u0644 \u06a9\u06be\u0648\u0644\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0628\u0627\u0626\u06cc\u06ba \u0633\u0627\u0626\u0688\u0628\u0627\u0631 \u0645\u06cc\u06ba <strong>\u06a9\u0631\u062f\u0627\u0631<\/strong><\/p>\n<\/li>\n<li>\n<p>\u06a9\u0644\u06a9 \u06a9\u0631\u06cc\u06ba <strong>\u06a9\u0631\u062f\u0627\u0631 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/strong><\/p>\n<\/li>\n<li>\n<p>\u06a9\u06d2 \u0644\u06cc\u06d2 <strong>\u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f \u06c1\u0633\u062a\u06cc \u06a9\u06cc \u0627\u0642\u0633\u0627\u0645<\/strong>\u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u06cc\u06ba <strong>\u0648\u06cc\u0628 \u0634\u0646\u0627\u062e\u062a<\/strong><\/p>\n<\/li>\n<li>\n<p>\u06a9\u06d2 \u0644\u06cc\u06d2 <strong>\u0634\u0646\u0627\u062e\u062a \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u0627<\/strong>\u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u06cc\u06ba: <code>token.actions.githubusercontent.com<\/code> \u06cc\u06c1 \u067e\u06c1\u0644\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u06af\u06cc\u0627 \u062a\u06be\u0627\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0645\u0646\u0632\u0644 \u0645\u06cc\u06ba\u060c \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u06cc\u06ba: <code>sts.amazonaws.com<\/code> \u0628\u06be\u06cc<\/p>\n<\/li>\n<li>\n<p>GitHub \u062a\u0646\u0638\u06cc\u0645 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0627\u067e\u0646\u0627 GitHub \u0635\u0627\u0631\u0641 \u0646\u0627\u0645 \u06cc\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0627 \u0646\u0627\u0645 \u062f\u0631\u062c \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>GitHub \u0630\u062e\u06cc\u0631\u06c1 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0627\u067e\u0646\u0627 GitHub \u0630\u062e\u06cc\u0631\u06c1 \u062f\u0631\u062c \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>GitHub \u0628\u0631\u0627\u0646\u0686 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0628\u0631\u0627\u0646\u0686 \u06a9\u0627 \u0646\u0627\u0645 \u062f\u0631\u062c \u06a9\u0631\u06cc\u06ba (\u062c\u06cc\u0633\u06d2 \u0645\u06cc\u0646)\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u06af\u0644\u0627 \u067e\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u06cc\u06ba\u060c \u067e\u06be\u0631 \u0627\u06af\u0644\u0627 \u067e\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u06cc\u06ba\u060c \u06a9\u0631\u062f\u0627\u0631 \u06a9\u0648 \u0627\u06cc\u06a9 \u0646\u0627\u0645 \u062f\u06cc\u06ba\u060c \u0627\u0648\u0631 \u06a9\u0631\u062f\u0627\u0631 \u0628\u0646\u0627\u0626\u06cc\u06ba \u067e\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ol>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1777319140_546_AWS-\u06a9\u06d2-\u0644\u06cc\u06d2-GitHub-\u0627\u06cc\u06a9\u0634\u0646\u0632-\u0645\u06cc\u06ba-OpenID-Connect-OIDC-\u06a9\u0648.png\" alt=\"console-github-action-iam-role-for-create \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u0646\u0648\u0679: \u062c\u0628 \u0622\u067e \u0627\u0633 \u0627\u067e\u0631\u0648\u0686 \u06a9\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 IAM \u0631\u0648\u0644 \u0628\u0646\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0645\u0648\u062c\u0648\u062f \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 <strong>\u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f \u06c1\u0633\u062a\u06cc<\/strong> \u0645\u0646\u062f\u0631\u062c\u06c1 \u0628\u0627\u0644\u0627 \u0645\u0631\u0627\u062d\u0644 4-9 \u067e\u0631 \u0645\u0628\u0646\u06cc \u0627\u06cc\u06a9 \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f \u067e\u0627\u0644\u06cc\u0633\u06cc \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u0622\u067e \u0628\u0646\u0627\u0626\u06d2 \u06af\u0626\u06d2 \u0631\u0648\u0644 \u067e\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u06a9\u06d2 \u0627\u0648\u0631 \u0679\u0631\u0633\u0679 \u0631\u06cc\u0644\u06cc\u0634\u0646 \u0634\u067e\u0633 \u067e\u0631 \u062c\u0627 \u06a9\u0631 \u0627\u0633\u06d2 \u0686\u06cc\u06a9 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-how-to-create-the-iam-role-with-the-aws-cli\">AWS CLI \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 IAM \u0631\u0648\u0644 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/h3>\n<p>\u067e\u06c1\u0644\u06d2 \u0622\u067e \u06a9\u0648 \u0627\u067e\u0646\u06d2 \u0645\u0642\u0627\u0645\u06cc \u06a9\u0645\u067e\u06cc\u0648\u0679\u0631 \u067e\u0631 \u0679\u0631\u0633\u0679 \u067e\u0627\u0644\u06cc\u0633\u06cc \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4 <code>trust-policy.json<\/code>:<\/p>\n<pre><code class=\"language-json\">{\n  \"Version\": \"2012-10-17\",\n  \"Statement\": [\n    {\n      \"Effect\": \"Allow\",\n      \"Principal\": {\n        \"Federated\": \"arn:aws:iam::YOUR_ACCOUNT_ID:oidc-provider\/token.actions.githubusercontent.com\"\n      },\n      \"Action\": \"sts:AssumeRoleWithWebIdentity\",\n      \"Condition\": {\n        \"StringEquals\": {\n          \"token.actions.githubusercontent.com:aud\": \"sts.amazonaws.com\"\n        },\n        \"StringLike\": {\n          \"token.actions.githubusercontent.com:sub\": \"repo:YOUR_GITHUB_ORG\/YOUR_REPO_NAME:*\"\n        }\n      }\n    }\n  ]\n}\n<\/code><\/pre>\n<p>\u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u062f\u0631\u062c \u0630\u06cc\u0644 \u067e\u0644\u06cc\u0633 \u06c1\u0648\u0644\u0688\u0631\u0632 \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba:<\/p>\n<table>\n<thead>\n<tr>\n<th>\u067e\u0644\u06cc\u0633 \u06c1\u0648\u0644\u0688\u0631<\/th>\n<th>\u0633\u06d2 \u0628\u062f\u0644 \u062f\u06cc\u06ba\u06d4<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>YOUR_ACCOUNT_ID<\/code><\/td>\n<td>12 \u06c1\u0646\u062f\u0633\u0648\u06ba \u06a9\u0627 AWS \u0627\u06a9\u0627\u0624\u0646\u0679 ID<\/td>\n<\/tr>\n<tr>\n<td><code>YOUR_GITHUB_ORG<\/code><\/td>\n<td>GitHub \u0635\u0627\u0631\u0641 \u0646\u0627\u0645 \u06cc\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0627 \u0646\u0627\u0645<\/td>\n<\/tr>\n<tr>\n<td><code>YOUR_REPO_NAME<\/code><\/td>\n<td>GitHub \u0630\u062e\u06cc\u0631\u06d2 \u06a9\u0627 \u0646\u0627\u0645<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 id=\"heading-how-to-understand-the-sub-condition\">\u06a9\u06cc\u0633\u06d2 \u0633\u0645\u062c\u06be\u0646\u0627 \u06c1\u06d2 <code>sub<\/code> \u0635\u0648\u0631\u062a \u062d\u0627\u0644<\/h3>\n<p>\u06a9\u06c1 <code>sub (subject)<\/code> JWT \u0645\u06cc\u06ba \u062f\u0639\u0648\u06d2 AWS \u06a9\u0648 \u0628\u0627\u0644\u06a9\u0644 \u0628\u062a\u0627\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06c1\u0627\u06ba \u0633\u06d2 \u0622\u0626\u06cc \u06c1\u06d2\u06d4 \u0642\u062f\u0631 <code>repo:your-org\/your-repo:*<\/code> \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0627\u0633 \u0630\u062e\u06cc\u0631\u06d2 \u06a9\u06cc \u06a9\u0648\u0626\u06cc \u0628\u06be\u06cc \u0634\u0627\u062e \u0627\u0633 \u06a9\u0631\u062f\u0627\u0631 \u06a9\u0648 \u0633\u0646\u0628\u06be\u0627\u0644 \u0633\u06a9\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0636\u0631\u0648\u0631\u062a \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u0622\u067e \u0627\u0633\u06d2 \u0645\u0632\u06cc\u062f \u0628\u0691\u06be\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-shell\"># Only the main branch\n\"token.actions.githubusercontent.com:sub\": \"repo:your-org\/your-repo:ref:refs\/heads\/main\"\n \n# Only a specific GitHub Environment\n\"token.actions.githubusercontent.com:sub\": \"repo:your-org\/your-repo:environment:production\"\n<\/code><\/pre>\n<p>\u062f\u0627\u0626\u0631\u06c1 \u06a9\u0627\u0631 \u06a9\u0648 \u062f\u0631\u0633\u062a \u06a9\u0631\u0646\u0627 \u0627\u0633 \u0633\u06cc\u0679 \u0627\u067e \u0645\u06cc\u06ba \u0633\u0628 \u0633\u06d2 \u0627\u06c1\u0645 \u062d\u0641\u0627\u0638\u062a\u06cc \u0641\u06cc\u0635\u0644\u0648\u06ba \u0645\u06cc\u06ba \u0633\u06d2 \u0627\u06cc\u06a9 \u06c1\u06d2\u06d4 \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1 \u06cc\u06c1\u0627\u06ba \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p>\u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba <code>ref:refs\/heads\/main<\/code> \u062c\u0628 \u0635\u0631\u0641 \u0645\u06cc\u0646\/\u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u0628\u0631\u0627\u0646\u0686 \u06a9\u0648 AWS \u0645\u06cc\u06ba \u062a\u0639\u06cc\u0646\u0627\u062a \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u06d4 \u06cc\u06c1 \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u062d\u062f\u0648\u062f \u0627\u0648\u0631 \u0645\u062d\u0641\u0648\u0638 \u0622\u067e\u0634\u0646 \u06c1\u06d2\u06d4 \u0641\u06cc\u0686\u0631 \u0628\u0631\u0627\u0646\u0686\u0632 \u062d\u0627\u062f\u062b\u0627\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 (\u06cc\u0627 \u0628\u062f\u0646\u06cc\u062a\u06cc \u0633\u06d2) \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc\u0648\u06ba \u06a9\u0648 \u0645\u062a\u062d\u0631\u06a9 \u0646\u06c1\u06cc\u06ba \u06a9\u0631 \u0633\u06a9\u062a\u06cc\u06ba \u06cc\u0627 \u067e\u06cc\u062f\u0627\u0648\u0627\u0631\u06cc \u0648\u0633\u0627\u0626\u0644 \u0645\u06cc\u06ba \u062a\u0631\u0645\u06cc\u0645 \u0646\u06c1\u06cc\u06ba \u06a9\u0631 \u0633\u06a9\u062a\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba <code>environment:production<\/code> \u0627\u06af\u0631 \u0622\u067e GitHub \u0645\u0627\u062d\u0648\u0644 \u06a9\u0648 \u062a\u062d\u0641\u0638 \u06a9\u06d2 \u0642\u0648\u0627\u0639\u062f \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba (\u0636\u0631\u0648\u0631\u06cc \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u0646\u06d2 \u0648\u0627\u0644\u06d2\u060c \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u062f\u0631\u0648\u0627\u0632\u06d2)\u06d4 \u06cc\u06c1 \u0622\u067e \u06a9\u0648 GitHub \u06a9\u06d2 \u0645\u0646\u0638\u0648\u0631\u06cc \u0648\u0627\u0644\u06d2 \u0648\u0631\u06a9 \u0641\u0644\u0648\u0632 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc\u0648\u06ba \u06a9\u0648 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u062c\u0628\u06a9\u06c1 \u06cc\u06c1 \u0628\u06be\u06cc \u0645\u062d\u062f\u0648\u062f \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0648\u0646 \u0633\u06d2 \u0648\u0631\u06a9 \u0641\u0644\u0648 AWS \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u062d\u0627\u0635\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba <code>repo:your-org\/your-repo:*<\/code> (\u0648\u0627\u0626\u0644\u0688 \u06a9\u0627\u0631\u0688) \u0635\u0631\u0641 \u0627\u0633 \u0635\u0648\u0631\u062a \u0645\u06cc\u06ba \u0644\u0627\u06af\u0648 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u0622\u067e \u06a9\u0648 \u062a\u0639\u06cc\u0646\u0627\u062a \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u0631\u0627\u0646\u0686 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u06d4 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0627\u06cc\u06a9 \u062a\u0631\u0642\u06cc\u0627\u062a\u06cc \u0645\u0627\u062d\u0648\u0644 \u0645\u06cc\u06ba \u062c\u06c1\u0627\u06ba \u06c1\u0631 \u0641\u06cc\u0686\u0631 \u0628\u0631\u0627\u0646\u0686 \u0627\u067e\u0646\u06d2 \u0627\u0644\u06af \u062a\u06be\u0644\u06af \u0627\u0633\u0679\u06cc\u06a9 \u0645\u06cc\u06ba \u062a\u0639\u06cc\u0646\u0627\u062a \u06c1\u06d2\u06d4 \u0627\u0633 \u0641\u06cc\u0686\u0631 \u06a9\u0648 \u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u0631\u0648\u0644\u0632 \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u0627\u0639\u062a\u0645\u0627\u062f \u06a9\u06cc \u067e\u0627\u0644\u06cc\u0633\u06cc \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0631\u062f\u0627\u0631 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0645\u0627\u0646\u0688 \u06a9\u0648 \u0686\u0644\u0627\u0626\u06cc\u06ba:<\/p>\n<pre><code class=\"language-shell\">aws iam create-role \n  --role-name GitHubActionsOIDCRole \n  --assume-role-policy-document file:\/\/trust-policy.json \n  --description \"Role assumed by GitHub Actions via OIDC\"\n<\/code><\/pre>\n<p>\u0628\u0631\u0627\u06c1 \u06a9\u0631\u0645 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0648 \u0646\u0648\u0679 \u06a9\u0631\u06cc\u06ba: <strong>\u0631\u0648\u0644 \u0627\u06d2 \u0622\u0631 \u0627\u06cc\u0646<\/strong> \u0622\u0624\u0679 \u067e\u0679 \u0645\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0627\u0633 \u0637\u0631\u062d \u0646\u0638\u0631 \u0622\u0626\u06d2 \u06af\u0627:<\/p>\n<pre><code class=\"language-plaintext\">arn:aws:iam::YOUR_ACCOUNT_ID:role\/GitHubActionsOIDCRole\n<\/code><\/pre>\n<p>\u0622\u067e \u06a9\u0648 \u0645\u0631\u062d\u0644\u06c1 4 \u0645\u06cc\u06ba \u0648\u0631\u06a9 \u0641\u0644\u0648 YAML \u0645\u06cc\u06ba \u0627\u0633 ARN \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1777319140_181_AWS-\u06a9\u06d2-\u0644\u06cc\u06d2-GitHub-\u0627\u06cc\u06a9\u0634\u0646\u0632-\u0645\u06cc\u06ba-OpenID-Connect-OIDC-\u06a9\u0648.png\" alt=\"AWS CLI Create-role \u06a9\u0645\u0627\u0646\u0688 \u0633\u06d2 \u0679\u0631\u0645\u06cc\u0646\u0644 \u0622\u0624\u0679 \u067e\u0679 ARN \u06a9\u06cc \u0648\u0627\u067e\u0633\u06cc \u06a9\u0648 \u0638\u0627\u06c1\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<h2 id=\"heading-step-3-attach-permissions-to-the-iam-role\">\u0645\u0631\u062d\u0644\u06c1 3: IAM \u06a9\u0631\u062f\u0627\u0631 \u0645\u06cc\u06ba \u0627\u062c\u0627\u0632\u062a\u06cc\u06ba \u0645\u0646\u0633\u0644\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0627\u0628 \u0622\u067e IAM \u06a9\u0631\u062f\u0627\u0631 \u06a9\u06cc \u062a\u0648\u062b\u06cc\u0642 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0644\u06cc\u06a9\u0646 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u0627\u0628\u06be\u06cc \u062a\u06a9 \u0627\u062c\u0627\u0632\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0622\u067e \u06a9\u0648 \u0627\u06cc\u0633\u06cc \u067e\u0627\u0644\u06cc\u0633\u06cc\u0627\u06ba \u0645\u0646\u0633\u0644\u06a9 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2 \u062c\u0648 \u0627\u0633 \u0628\u0627\u062a \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u06a9\u0627 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u0627\u0635\u0644 \u0645\u06cc\u06ba AWS \u0645\u06cc\u06ba \u06a9\u06cc\u0627 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-how-to-apply-the-principle-of-least-privilege\">\u06a9\u0645 \u0627\u0632 \u06a9\u0645 \u0627\u0633\u062a\u062d\u0642\u0627\u0642 \u06a9\u06d2 \u0627\u0635\u0648\u0644 \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u0644\u0627\u06af\u0648 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/h3>\n<p>\u0635\u0631\u0641 \u0648\u06c1\u06cc \u0627\u062c\u0627\u0632\u062a\u06cc\u06ba \u062f\u06cc\u06ba \u062c\u0648 \u0622\u067e \u06a9\u06d2 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u0648 \u062f\u0631\u06a9\u0627\u0631 \u06c1\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u0622\u067e \u06a9\u0627 \u0648\u0631\u06a9 \u0641\u0644\u0648 S3 \u067e\u0631 \u062a\u0639\u06cc\u0646\u0627\u062a \u06c1\u06d2 \u062a\u0648 S3 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u0622\u067e \u06a9\u0633\u06cc \u062a\u0635\u0648\u06cc\u0631 \u06a9\u0648 ECR \u067e\u0631 \u0622\u06af\u06d2 \u0628\u0691\u06be\u0627 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba \u062a\u0648 ECR \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u06ba\u06d4 \u06a9\u0628\u06be\u06cc \u0645\u0646\u0633\u0644\u06a9 \u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4 <code>AdministratorAccess<\/code> CI\/CD \u06a9\u0631\u062f\u0627\u0631\u06d4<\/p>\n<h4 id=\"heading-option-1-attach-an-aws-managed-policy-quick-start\">\u0622\u067e\u0634\u0646 1: AWS \u0645\u06cc\u0646\u06cc\u062c\u0688 \u067e\u0627\u0644\u06cc\u0633\u06cc \u0645\u0646\u0633\u0644\u06a9 \u06a9\u0631\u06cc\u06ba (\u06a9\u0648\u0626\u06cc\u06a9 \u0633\u0679\u0627\u0631\u0679):<\/h4>\n<pre><code class=\"language-shell\">aws iam attach-role-policy \n  --role-name GitHubActionsOIDCRole \n  --policy-arn arn:aws:iam::aws:policy\/AmazonS3FullAccess\n<\/code><\/pre>\n<h4 id=\"heading-option-2-create-a-custom-policy-scoped-to-a-specific-s3-bucket-recommended-for-production\">\u0622\u067e\u0634\u0646 2: \u0627\u06cc\u06a9 \u0645\u062e\u0635\u0648\u0635 S3 \u0628\u0627\u0644\u0679\u06cc (\u067e\u06cc\u062f\u0627\u0648\u0627\u0631 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u062c\u0648\u06cc\u0632 \u06a9\u0631\u062f\u06c1) \u06a9\u06d2 \u062f\u0627\u0626\u0631\u06c1 \u06a9\u0627\u0631 \u0645\u06cc\u06ba \u0627\u067e\u0646\u06cc \u0645\u0631\u0636\u06cc \u06a9\u06cc \u067e\u0627\u0644\u06cc\u0633\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/h4>\n<p>\u067e\u06cc\u062f\u0627\u0648\u0627\u0631 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633 \u0646\u0642\u0637\u06c1 \u0646\u0638\u0631 \u06a9\u06cc \u0633\u0641\u0627\u0631\u0634 \u06a9\u06cc \u062c\u0627\u062a\u06cc \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06cc\u06c1 \u0633\u06cc\u06a9\u06cc\u0648\u0631\u0679\u06cc \u0648\u0627\u0642\u0639\u06d2 \u06a9\u06d2 \u062f\u06be\u0645\u0627\u06a9\u06d2 \u06a9\u06d2 \u0631\u062f\u0627\u0633 \u06a9\u0648 \u0645\u062d\u062f\u0648\u062f \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0622\u067e \u06a9\u06d2 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u06cc \u0627\u0633\u0646\u0627\u062f \u0633\u06d2 \u0633\u0645\u062c\u06be\u0648\u062a\u06c1 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u062a\u0648\u060c \u0627\u06cc\u06a9 \u0645\u062e\u0635\u0648\u0635 \u0628\u0627\u0644\u0679\u06cc \u06a9\u06d2 \u062f\u0627\u0626\u0631\u06c1 \u06a9\u0627\u0631 \u0645\u06cc\u06ba \u0627\u067e\u0646\u06cc \u0645\u0631\u0636\u06cc \u06a9\u06cc \u067e\u0627\u0644\u06cc\u0633\u06cc \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u062d\u0645\u0644\u06c1 \u0622\u0648\u0631 \u0622\u067e \u06a9\u06d2 AWS \u0627\u06a9\u0627\u0624\u0646\u0679 \u0645\u06cc\u06ba \u0645\u0648\u062c\u0648\u062f \u062a\u0645\u0627\u0645 S3 \u0628\u0627\u0644\u0679\u06cc\u0648\u06ba \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0635\u0631\u0641 \u0627\u0633 \u0648\u0627\u062d\u062f \u0628\u0627\u0644\u0679\u06cc \u06a9\u0648 \u0645\u062a\u0627\u062b\u0631 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0622\u067e \u06a9\u06d2 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u0645\u06cc\u06ba \u062d\u0627\u062f\u062b\u0627\u062a\u06cc \u063a\u0644\u0637 \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646 \u06a9\u0648 \u063a\u06cc\u0631 \u0645\u062a\u0639\u0644\u0642\u06c1 \u0648\u0633\u0627\u0626\u0644 \u06a9\u0648 \u0645\u062a\u0627\u062b\u0631 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u0628\u06be\u06cc \u0631\u0648\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0646\u0627\u0645\u06cc \u0627\u06cc\u06a9 \u0641\u0627\u0626\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba <code>s3-deploy-policy.json<\/code>:<\/p>\n<pre><code class=\"language-json\">{\n  \"Version\": \"2012-10-17\",\n  \"Statement\": [\n    {\n      \"Effect\": \"Allow\",\n      \"Action\": [\n        \"s3:PutObject\",\n        \"s3:DeleteObject\",\n        \"s3:ListBucket\"\n      ],\n      \"Resource\": [\n        \"arn:aws:s3:::your-bucket-name\",\n        \"arn:aws:s3:::your-bucket-name\/*\"\n      ]\n    }\n  ]\n}\n<\/code><\/pre>\n<p>\u067e\u06be\u0631 \u0627\u0633\u06d2 \u0628\u0646\u0627\u0626\u06cc\u06ba \u0627\u0648\u0631 \u0645\u0646\u0633\u0644\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-shell\">aws iam create-policy \n  --policy-name GitHubActionsS3DeployPolicy \n  --policy-document file:\/\/s3-deploy-policy.json\n \naws iam attach-role-policy \n  --role-name GitHubActionsOIDCRole \n  --policy-arn arn:aws:iam::YOUR_ACCOUNT_ID:policy\/GitHubActionsS3DeployPolicy\n<\/code><\/pre>\n<p>\u0646\u0648\u0679: \u0639\u0645\u0644 \u062f\u0631\u0622\u0645\u062f \u0628\u06be\u06cc \u0645\u0645\u06a9\u0646 \u06c1\u06d2: <strong>\u0645\u0631\u062d\u0644\u06c1 3<\/strong> \u06a9\u0646\u0633\u0648\u0644 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2\u06d4<\/p>\n<p><strong>\u062d\u0648\u0627\u0644\u06c1:<\/strong> \u062f\u0633\u062a\u06cc\u0627\u0628 AWS IAM \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc\u0648\u06ba \u06a9\u06cc \u0645\u06a9\u0645\u0644 \u0641\u06c1\u0631\u0633\u062a \u06a9\u06d2 \u0644\u06cc\u06d2\u060c AWS IAM \u0627\u06cc\u06a9\u0634\u0646\u0632 \u06a9\u0627 \u062d\u0648\u0627\u0644\u06c1 \u062f\u06cc\u06a9\u06be\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-step-4-store-the-role-arn-as-a-github-actions-variable\">\u0645\u0631\u062d\u0644\u06c1 4: \u06a9\u0631\u062f\u0627\u0631 ARN \u06a9\u0648 GitHub \u0627\u06cc\u06a9\u0634\u0646 \u0645\u062a\u063a\u06cc\u0631 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u0648 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0622\u067e \u06a9\u0648 \u0631\u0648\u0644 ARN \u062f\u0633\u062a\u06cc\u0627\u0628 \u06a9\u0631\u0627\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 \u0686\u0648\u0646\u06a9\u06c1 ARN \u0628\u0630\u0627\u062a \u062e\u0648\u062f \u062d\u0633\u0627\u0633 \u0688\u06cc\u0679\u0627 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u06c1\u0645 \u0627\u0633\u06d2 GitHub \u067e\u0631 \u0627\u06cc\u06a9 \u063a\u06cc\u0631 \u062e\u0641\u06cc\u06c1 \u0630\u062e\u06cc\u0631\u06c1 \u0645\u062a\u063a\u06cc\u0631 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633\u0679\u0648\u0631 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-how-to-add-the-variable-in-your-repository\">\u0645\u062e\u0632\u0646 \u0645\u06cc\u06ba \u0645\u062a\u063a\u06cc\u0631\u0627\u062a \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u0634\u0627\u0645\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/h3>\n<ol>\n<li>\u0627\u067e\u0646\u0627 GitHub \u0630\u062e\u06cc\u0631\u06c1 \u06a9\u06be\u0648\u0644\u06cc\u06ba \u0627\u0648\u0631 \u0627\u06af\u0644\u0627 \u067e\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4 <strong>\u062a\u0631\u062a\u06cc\u0628:<\/strong><\/li>\n<\/ol>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1777319140_925_AWS-\u06a9\u06d2-\u0644\u06cc\u06d2-GitHub-\u0627\u06cc\u06a9\u0634\u0646\u0632-\u0645\u06cc\u06ba-OpenID-Connect-OIDC-\u06a9\u0648.png\" alt=\"GitHub \u0631\u06cc\u067e\u0648\u0632\u0679\u0631\u06cc \u0679\u0627\u067e \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0634\u0646 \u0628\u0627\u0631 \u062c\u0633 \u0645\u06cc\u06ba \u0633\u06cc\u0679\u0646\u06af\u0632 \u0679\u06cc\u0628 \u06a9\u0648 \u06c1\u0627\u0626\u06cc \u0644\u0627\u0626\u0679 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<ol>\n<li>\u0628\u0627\u0626\u06cc\u06ba \u0633\u0627\u0626\u0688\u0628\u0627\u0631 \u0645\u06cc\u06ba \u0646\u06cc\u0686\u06d2 \u0633\u06a9\u0631\u0648\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <strong>\u0631\u0627\u0632 \u0627\u0648\u0631 \u0645\u062a\u063a\u06cc\u0631\u0627\u062a<\/strong>\u060c \u067e\u06be\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4 <strong>\u0639\u0645\u0644:<\/strong><\/li>\n<\/ol>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1777319140_706_AWS-\u06a9\u06d2-\u0644\u06cc\u06d2-GitHub-\u0627\u06cc\u06a9\u0634\u0646\u0632-\u0645\u06cc\u06ba-OpenID-Connect-OIDC-\u06a9\u0648.png\" alt=\"\u06af\u0679 \u06c1\u0628 \u0631\u06cc\u067e\u0648\u0632\u0679\u0631\u06cc \u0633\u06cc\u0679\u0646\u06af \u0633\u0627\u0626\u0688\u0628\u0627\u0631 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062f\u06c1 \u0627\u06cc\u06a9\u0634\u0646 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u067e\u06be\u06cc\u0644\u0627\u0626\u06d2 \u06af\u0626\u06d2 \u0631\u0627\u0632 \u0627\u0648\u0631 \u0645\u062a\u063a\u06cc\u0631\u0627\u062a \u06a9\u0648 \u062f\u06a9\u06be\u0627\u062a\u06cc \u06c1\u06d2\u06d4\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<ol>\n<li>\n<p>\u0627\u06af\u0644\u0627 \u067e\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4 <strong>\u0645\u062a\u063a\u06cc\u0631<\/strong> \u0679\u06cc\u0628 (\u062e\u0641\u06cc\u06c1 \u0646\u06c1\u06cc\u06ba)<\/p>\n<\/li>\n<li>\n<p>\u06a9\u0644\u06a9 \u06a9\u0631\u06cc\u06ba <strong>\u0646\u06cc\u0627 \u0630\u062e\u06cc\u0631\u06c1 \u0645\u062a\u063a\u06cc\u0631<\/strong><\/p>\n<\/li>\n<li>\n<p>\u0622\u067e \u0633\u06cc\u0679 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba <strong>\u0646\u0627\u0645<\/strong> \u06a9\u0648:<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"language-plaintext\">AWS_ROLE_ARN\n<\/code><\/pre>\n<ol>\n<li>\u062a\u0631\u062a\u06cc\u0628 <strong>\u0642\u062f\u0631<\/strong> \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0645\u0631\u062d\u0644\u06c1 2 \u0633\u06d2 ARN \u06a9\u06d2 \u06a9\u0631\u062f\u0627\u0631 \u0645\u06cc\u06ba:<\/li>\n<\/ol>\n<pre><code class=\"language-plaintext\">arn:aws:iam::YOUR_ACCOUNT_ID::role\/GitHubActionsOIDCRole\n<\/code><\/pre>\n<ol>\n<li>\u06a9\u0644\u06a9 \u06a9\u0631\u06cc\u06ba <strong>\u0645\u062a\u063a\u06cc\u0631 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/strong><\/li>\n<\/ol>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1777319140_268_AWS-\u06a9\u06d2-\u0644\u06cc\u06d2-GitHub-\u0627\u06cc\u06a9\u0634\u0646\u0632-\u0645\u06cc\u06ba-OpenID-Connect-OIDC-\u06a9\u0648.png\" alt=\"GitHub Repository Action Variables \u0679\u06cc\u0628 \u062f\u06a9\u06be\u0627 \u0631\u06c1\u0627 \u06c1\u06d2 AWS_ROLE_ARN \u0645\u062a\u063a\u06cc\u0631 \u06a9\u0627\u0645\u06cc\u0627\u0628\u06cc \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0634\u0627\u0645\u0644 \u06a9\u06cc\u0627 \u06af\u06cc\u0627\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u0622\u067e \u0627\u067e\u0646\u06d2 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u06d2 \u0627\u06af\u0644\u06d2 \u0645\u0631\u062d\u0644\u06d2 \u0645\u06cc\u06ba \u0627\u0633 \u0645\u062a\u063a\u06cc\u0631 \u06a9\u0627 \u062d\u0648\u0627\u0644\u06c1 \u062f\u06cc\u06ba \u06af\u06d2\u06d4 <code>${{<\/code> <code>vars.AWS_ROLE_ARN }}<\/code>.<\/p>\n<h2 id=\"heading-step-5-configure-your-github-actions-workflow\">\u0645\u0631\u062d\u0644\u06c1 5: GitHub \u0627\u06cc\u06a9\u0634\u0646 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u0648 \u06a9\u0646\u0641\u06cc\u06af\u0631 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0627\u0628 \u062c\u0628\u06a9\u06c1 AWS \u0627\u0648\u0631 GitHub \u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0646\u0641\u06cc\u06af\u0631 \u06c1\u0648 \u0686\u06a9\u06d2 \u06c1\u06cc\u06ba\u060c \u0622\u067e \u06a9\u0648 OIDC \u0679\u0648\u06a9\u0646 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u0627\u0633\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u067e\u0646\u06d2 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-how-to-set-the-required-workflow-permissions\">\u0645\u0637\u0644\u0648\u0628\u06c1 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u0627\u062c\u0627\u0632\u062a\u0648\u06ba \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/h3>\n<p>\u0622\u067e \u06a9\u06d2 \u06a9\u0627\u0645 \u06a9\u0627 \u0628\u06c1\u0627\u0624 <strong>~ \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u06d4<\/strong> \u0627\u0639\u0644\u0627\u0646 <code>id-token: write<\/code>. \u0627\u0633 \u06a9\u06d2 \u0628\u063a\u06cc\u0631\u060c GitHub \u0627\u06cc\u06af\u0632\u06cc\u06a9\u06cc\u0648\u0679\u0631\u0632 \u06a9\u0648 OIDC \u0679\u0648\u06a9\u0646 \u062c\u0627\u0631\u06cc \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u06d2 \u06af\u0627\u06d4<\/p>\n<pre><code class=\"language-yaml\">permissions:\n  id-token: write   # Required to request the OIDC JWT\n  contents: read    # Required to checkout the repository\n<\/code><\/pre>\n<p><strong>\u0627\u06c1\u0645:<\/strong> \u0679\u0627\u0633\u06a9 \u0644\u06cc\u0648\u0644 \u067e\u0631 \u0627\u062c\u0627\u0632\u062a\u06cc\u06ba \u0633\u06cc\u0679 \u06a9\u0631\u0646\u0627 \u062a\u0645\u0627\u0645 \u0627\u0639\u0644\u06cc\u0670 \u0633\u0637\u062d \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a\u0648\u06ba \u06a9\u0648 \u0627\u0648\u0648\u0631 \u0631\u0627\u0626\u06cc\u0688 \u06a9\u0631 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba <code>id-token: write<\/code> \u06cc\u06c1 \u0627\u0633 \u0633\u0637\u062d \u067e\u0631 \u0645\u0648\u062c\u0648\u062f \u06c1\u06d2 \u062c\u06c1\u0627\u06ba AWS \u062a\u0648\u062b\u06cc\u0642 \u06a9\u06d2 \u0645\u0631\u0627\u062d\u0644 \u06a9\u0648 \u0627\u0646\u062c\u0627\u0645 \u062f\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-full-workflow-example\">\u0645\u06a9\u0645\u0644 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u0645\u062b\u0627\u0644<\/h3>\n<p>\u0630\u06cc\u0644 \u0645\u06cc\u06ba OIDC \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 AWS \u06a9\u06cc \u062a\u0648\u062b\u06cc\u0642 \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 S3 \u067e\u0631 \u0627\u06cc\u06a9 \u0645\u0633\u062a\u062d\u06a9\u0645 \u0633\u0627\u0626\u0679 \u062a\u0639\u06cc\u0646\u0627\u062a \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u06a9\u0645\u0644 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-yaml\">name: Deploy to AWS S3\n \non:\n  push:\n    branches:\n      - main\n \npermissions:\n  id-token: write\n  contents: read\n \njobs:\n  deploy:\n    name: Deploy\n    runs-on: ubuntu-latest\n \n    steps:\n      - name: Checkout code\n        uses: actions\/checkout@v4\n \n      - name: Configure AWS credentials via OIDC\n        uses: aws-actions\/configure-aws-credentials@v4\n        with:\n          role-to-assume: ${{ vars.AWS_ROLE_ARN }}\n          aws-region: us-east-2\n \n      - name: Verify AWS identity\n        run: aws sts get-caller-identity\n \n      - name: Deploy to S3\n        run: |\n          aws s3 sync .\/code s3:\/\/your-bucket-name\n<\/code><\/pre>\n<p>\u0627\u0631\u062a\u06a9\u0627\u0628 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba:<\/p>\n<table>\n<thead>\n<tr>\n<th>\u067e\u0644\u06cc\u0633 \u06c1\u0648\u0644\u0688\u0631<\/th>\n<th>\u0633\u06d2 \u0628\u062f\u0644 \u062f\u06cc\u06ba\u06d4<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>AWS_ROLE_ARN<\/code><\/td>\n<td>GitHub \u06a9\u06d2 IAM \u0631\u0648\u0644 ARN \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u062a\u063a\u06cc\u0631 \u0646\u0627\u0645<\/td>\n<\/tr>\n<tr>\n<td><code>us-east-2<\/code><\/td>\n<td>AWS \u0631\u06cc\u062c\u0646 \u06a9\u0648 \u0646\u0634\u0627\u0646\u06c1 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/td>\n<\/tr>\n<tr>\n<td><code>your-bucket-name<\/code><\/td>\n<td>S3 \u0628\u0627\u0644\u0679\u06cc \u06a9\u0627 \u0646\u0627\u0645<\/td>\n<\/tr>\n<tr>\n<td><code>.\/code<\/code><\/td>\n<td>\u0645\u0642\u0627\u0645\u06cc \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679\u0631\u06cc \u062c\u0633 \u0645\u06cc\u06ba \u0641\u0627\u0626\u0644\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba \u062c\u0646 \u06a9\u0648 \u0622\u067e S3 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06c1\u0645 \u0622\u06c1\u0646\u06af \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u0622\u067e \u06cc\u06c1\u0627\u06ba \u0645\u06cc\u0631\u06d2 GitHub Repo \u0645\u06cc\u06ba \u06a9\u0648\u0688 \u06a9\u06d2 \u0646\u0645\u0648\u0646\u06d2 \u062f\u06cc\u06a9\u06be \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p><strong>\u0645\u06cc\u0645\u0648:<\/strong> \u06a9\u06c1 <code>aws-actions\/configure-aws-credentials<\/code> \u06cc\u06c1 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u067e\u0648\u0631\u06d2 OIDC \u0679\u0648\u06a9\u0646 \u0627\u06cc\u06a9\u0633\u0686\u06cc\u0646\u062c \u06a9\u0648 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 GitHub \u0633\u06d2 JWT \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u06a9\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>sts:AssumeRoleWithWebIdentity<\/code>\u0627\u067e\u0646\u06cc \u0628\u0627\u0642\u06cc \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0627\u062d\u0648\u0644\u06cc\u0627\u062a\u06cc \u0645\u062a\u063a\u06cc\u0631\u0627\u062a \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0639\u0627\u0631\u0636\u06cc \u0627\u0633\u0646\u0627\u062f \u0628\u0631\u0622\u0645\u062f \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0628\u0631\u0627\u06c1 \u06a9\u0631\u0645 \u062a\u0645\u0627\u0645 \u062f\u0633\u062a\u06cc\u0627\u0628 \u0627\u062e\u062a\u06cc\u0627\u0631\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u0645 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0631\u06a9\u0627\u0631\u06cc \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u0627 \u062d\u0648\u0627\u0644\u06c1 \u062f\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-step-6-run-and-verify-your-workflow\">\u0645\u0631\u062d\u0644\u06c1 6: \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u0648 \u0686\u0644\u0627\u0626\u06cc\u06ba \u0627\u0648\u0631 \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0648\u0631\u06a9 \u0641\u0644\u0648 <code>main<\/code> \u0627\u06cc\u06a9 \u0634\u0627\u062e \u06a9\u06be\u0648\u0644\u06cc\u06ba <strong>\u0639\u0645\u0644<\/strong> \u0631\u06cc\u067e\u0648\u0632\u0679\u0631\u06cc \u06a9\u06d2 \u0679\u06cc\u0628 \u06a9\u0648 \u0686\u0644\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u06d2 \u062a\u06be\u067e\u062a\u06be\u067e\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-what-a-successful-run-looks-like\">\u0627\u06cc\u06a9 \u06a9\u0627\u0645\u06cc\u0627\u0628 \u0639\u0645\u0644\u062f\u0631\u0622\u0645\u062f \u06a9\u06cc\u0633\u0627 \u0644\u06af\u062a\u0627 \u06c1\u06d2\u06d4<\/h3>\n<p>OIDC \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 AWS \u0627\u0633\u0646\u0627\u062f \u06a9\u0648 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0646\u06d2 \u06a9\u06d2 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u06a9\u0648 \u062f\u0631\u062c \u0630\u06cc\u0644 \u062f\u06a9\u06be\u0627\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2:<\/p>\n<pre><code class=\"language-plaintext\">Assuming role with OIDC: arn:aws:iam::YOUR_ACCOUNT_ID:role\/GitHubActionsOIDCRole\n<\/code><\/pre>\n<p>AWS \u0627\u0633\u0646\u0627\u062f \u06a9\u06cc \u062a\u0635\u062f\u06cc\u0642 \u06a9\u06d2 \u0645\u0631\u0627\u062d\u0644 (<code>aws sts get-caller-identity<\/code>) \u0648\u0627\u067e\u0633 \u0622\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2:<\/p>\n<pre><code class=\"language-json\">{\n    \"UserId\": \"AROA...:GitHubActions\",\n    \"Account\": \"YOUR_ACCOUNT_ID\",\n    \"Arn\": \"arn:aws:sts::YOUR_ACCOUNT_ID:assumed-role\/GitHubActionsOIDCRole\/GitHubActions\"\n}\n<\/code><\/pre>\n<p>\u0627\u06af\u0631 \u0622\u067e \u062f\u06cc\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba <code>assumed-role<\/code> \u0622\u0624\u0679 \u067e\u0679 \u0645\u06cc\u06ba ARN\u060c OIDC \u0635\u062d\u06cc\u062d \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4 \u0622\u067e \u06a9\u0627 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u0627\u0628 AWS \u0633\u06d2 \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0628\u063a\u06cc\u0631 \u06a9\u0633\u06cc \u0627\u06cc\u06a9 \u0628\u06be\u06cc \u0633\u0646\u062f \u06a9\u06d2 \u0630\u062e\u06cc\u0631\u06c1 \u0634\u062f\u06c1\u06d4<\/p>\n<h2 id=\"heading-security-best-practices\">\u0633\u06cc\u06a9\u06cc\u0648\u0631\u0679\u06cc \u06a9\u06d2 \u0628\u06c1\u062a\u0631\u06cc\u0646 \u0637\u0631\u06cc\u0642\u06d2<\/h2>\n<p>OIDC \u06a9\u0627\u0645 \u06a9\u0631\u0646\u0627 \u067e\u06c1\u0644\u0627 \u0642\u062f\u0645 \u06c1\u06d2\u06d4 \u0627\u0633\u06d2 \u0635\u062d\u06cc\u062d \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u0644\u0627\u06a9 \u06a9\u0631\u0646\u0627 \u062f\u0648\u0633\u0631\u0627 \u0645\u0631\u062d\u0644\u06c1 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-scope-the-sub-condition-as-tightly-as-possible\">\u062f\u0627\u0626\u0631\u06c1 \u06a9\u0627\u0631 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u06cc\u06ba\u06d4 <code>sub<\/code> \u0627\u0633\u06d2 \u06c1\u0631 \u0645\u0645\u06a9\u0646 \u062d\u062f \u062a\u06a9 \u0633\u062e\u062a \u0631\u06a9\u06be\u06cc\u06ba\u06d4<\/h3>\n<p>\u0648\u0627\u0626\u0644\u0688 \u06a9\u0627\u0631\u0688 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u06af\u0631\u06cc\u0632 \u06a9\u0631\u06cc\u06ba \u062c\u06cc\u0633\u06d2: <code>repo:your-org\/*:*<\/code> \u06cc\u06c1 \u0622\u067e \u06a9\u06cc \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc\u06ba \u06a9\u0633\u06cc \u0628\u06be\u06cc \u0630\u062e\u06cc\u0631\u06d2 \u06a9\u0648 \u06a9\u0631\u062f\u0627\u0631 \u0627\u062f\u0627 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u0627 \u062f\u0627\u0626\u0631\u06c1 \u062f\u0631\u0633\u062a \u0630\u062e\u06cc\u0631\u06c1 \u0627\u0648\u0631 \u0628\u0631\u0627\u0646\u0686 \u062a\u06a9 \u067e\u06c1\u0646\u0686\u0627\u0626\u06cc\u06ba \u062c\u0633 \u062a\u06a9 \u0622\u067e \u06a9\u0648 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-json\">\"token.actions.githubusercontent.com:sub\": \"repo:your-org\/your-repo:ref:refs\/heads\/main\"\n<\/code><\/pre>\n<h3 id=\"heading-use-github-environments-for-production-deployments\">\u067e\u06cc\u062f\u0627\u0648\u0627\u0631 \u06a9\u06cc \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 GitHub \u0645\u0627\u062d\u0648\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>GitHub \u0645\u0627\u062d\u0648\u0644 \u0622\u067e \u06a9\u0648 \u062f\u0633\u062a\u06cc \u0645\u0646\u0638\u0648\u0631\u06cc \u06a9\u06d2 \u062f\u0631\u0648\u0627\u0632\u06d2 \u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u0627\u0646 \u0634\u0627\u062e\u0648\u06ba \u06a9\u0648 \u0645\u062d\u062f\u0648\u062f \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u062c\u0646 \u0645\u06cc\u06ba \u0622\u067e \u062a\u0639\u06cc\u0646\u0627\u062a \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 OIDC \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0645\u0644 \u06a9\u0631\u060c \u0622\u067e \u0635\u0631\u0641 \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0679\u0631\u0633\u0679 \u067e\u0627\u0644\u06cc\u0633\u06cc \u06a9\u0627 \u062f\u0627\u0626\u0631\u06c1 \u0627\u062e\u062a\u06cc\u0627\u0631 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba: <code>production<\/code> \u0645\u0627\u062d\u0648\u0644:<\/p>\n<pre><code class=\"language-json\">\"token.actions.githubusercontent.com:sub\": \"repo:your-org\/your-repo:environment:production\"\n<\/code><\/pre>\n<h3 id=\"heading-apply-least-privilege-permissions-to-every-iam-role\">IAM \u06a9\u06d2 \u062a\u0645\u0627\u0645 \u06a9\u0631\u062f\u0627\u0631\u0648\u06ba \u067e\u0631 \u06a9\u0645 \u0627\u0632 \u06a9\u0645 \u0627\u0633\u062a\u062d\u0642\u0627\u0642 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a\u0648\u06ba \u06a9\u0627 \u0627\u0637\u0644\u0627\u0642 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u06a9\u0628\u06be\u06cc \u0645\u0646\u0633\u0644\u06a9 \u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4 <code>AdministratorAccess<\/code> \u06cc\u0627 <code>PowerUserAccess<\/code> CI\/CD \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06c1\u0648\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06a9\u0631\u062f\u0627\u0631\u06d4 \u0627\u067e\u0646\u06cc \u0645\u0631\u0636\u06cc \u06a9\u06cc \u067e\u0627\u0644\u06cc\u0633\u06cc\u0648\u06ba \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u06cc\u06ba \u062c\u0646 \u0645\u06cc\u06ba \u0635\u0631\u0641 \u0648\u06c1 \u06a9\u0627\u0645 \u0634\u0627\u0645\u0644 \u06c1\u0648\u06ba \u062c\u0648 \u0622\u067e \u06a9\u06d2 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u0648 \u062f\u0631\u06a9\u0627\u0631 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-create-separate-iam-roles-per-environment\">\u06c1\u0631 \u0645\u0627\u062d\u0648\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0644\u06af \u0627\u0644\u06af IAM \u06a9\u0631\u062f\u0627\u0631 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h3>\n<p>\u0633\u0679\u06cc\u062c\u0646\u06af \u0631\u0648\u0644\u0632 \u0627\u0648\u0631 \u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u0631\u0648\u0644\u0632 \u0645\u06cc\u06ba \u0627\u062c\u0627\u0632\u062a \u06a9\u06d2 \u0645\u062e\u062a\u0644\u0641 \u0633\u06cc\u0679 \u06c1\u0648\u0646\u06d2 \u0686\u0627\u06c1\u0626\u06cc\u06ba\u06d4 \u0627\u0633\u0679\u06cc\u062c\u0646\u06af \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u06a9\u0631\u062f\u0627\u0631 \u06a9\u0648 \u067e\u06cc\u062f\u0627\u0648\u0627\u0631\u06cc \u0648\u0633\u0627\u0626\u0644 \u062a\u06a9 \u062a\u062d\u0631\u06cc\u0631\u06cc \u0631\u0633\u0627\u0626\u06cc \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u0646\u06cc \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<h3 id=\"heading-enable-aws-cloudtrail\">AWS CloudTrail \u06a9\u0648 \u0641\u0639\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0639\u0627\u0631\u0636\u06cc \u0627\u0633\u0646\u0627\u062f \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u06a9\u06cc \u06af\u0626\u06cc \u062a\u0645\u0627\u0645 \u06a9\u0627\u0644\u0632 CloudTrail \u0645\u06cc\u06ba \u0641\u0631\u0636 \u06a9\u0631\u062f\u06c1 \u0631\u0648\u0644 ARN \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0644\u0627\u06af \u0627\u0646 \u06c1\u0648\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 AWS \u0645\u06cc\u06ba \u0622\u067e \u06a9\u06d2 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u06cc \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u06a9\u0627 \u0645\u06a9\u0645\u0644 \u0622\u0688\u0679 \u0679\u0631\u06cc\u0644 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><strong>\u062d\u0648\u0627\u0644\u06c1:<\/strong> OIDC \u06a9\u06d2 \u0644\u06cc\u06d2 GitHub \u06a9\u06cc \u0622\u0641\u06cc\u0634\u0644 \u0633\u062e\u062a \u06af\u0627\u0626\u06cc\u0688: OpenID Connect \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0633\u06cc\u06a9\u06cc\u0648\u0631\u0679\u06cc \u06a9\u0648 \u0633\u062e\u062a \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba<\/p>\n<h2 id=\"heading-troubleshooting-common-errors\">\u0639\u0627\u0645 \u063a\u0644\u0637\u06cc\u0648\u06ba \u06a9\u0627 \u0627\u0632\u0627\u0644\u06c1 \u06a9\u0631\u0646\u0627<\/h2>\n<h3 id=\"heading-error-not-authorized-to-perform-stsassumerolewithwebidentity\">\u063a\u0644\u0637\u06cc: <code>Not authorized to perform sts:AssumeRoleWithWebIdentity<\/code><\/h3>\n<p>\u0627\u0633 \u06a9\u0627 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u0645\u0637\u0644\u0628 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 IAM \u06a9\u0631\u062f\u0627\u0631 \u06a9\u06cc \u0627\u0639\u062a\u0645\u0627\u062f \u06a9\u06cc \u067e\u0627\u0644\u06cc\u0633\u06cc \u0645\u0645\u0627\u062b\u0644 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 <code>sub<\/code> JWT \u0633\u06d2 \u062f\u0639\u0648\u06cc\u0670\u06d4<\/p>\n<p>\u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0648 \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p>\u06a9\u06c1 <code>sub<\/code> \u062d\u0627\u0644\u062a \u0631\u06cc\u067e\u0648\u0632\u0679\u0631\u06cc \u067e\u0627\u062a\u06be \u0633\u06d2 \u0628\u0627\u0644\u06a9\u0644 \u0645\u06cc\u0644 \u06a9\u06be\u0627\u062a\u06cc \u06c1\u06d2 (\u06a9\u06cc\u0633 \u062d\u0633\u0627\u0633)\u06d4<\/p>\n<\/li>\n<li>\n<p>\u06a9\u06c1 <code>aud<\/code> \u0634\u0631\u0627\u0626\u0637 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06c1\u06cc\u06ba: <code>sts.amazonaws.com<\/code><\/p>\n<\/li>\n<li>\n<p>\u06a9\u06c1 <code>Federated<\/code> \u0645\u0648\u0636\u0648\u0639 \u062f\u0631\u0633\u062a AWS \u0627\u06a9\u0627\u0624\u0646\u0679 ID \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u0622\u067e \u06a9\u06d2 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u0648 \u0645\u0648\u0635\u0648\u0644 \u06c1\u0648\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0627\u0635\u0644 \u0679\u0648\u06a9\u0646 \u062f\u0639\u0648\u06d2 \u06a9\u0627 \u0645\u0639\u0627\u0626\u0646\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0639\u0627\u0631\u0636\u06cc \u0637\u0648\u0631 \u067e\u0631 \u062f\u0631\u062c \u0630\u06cc\u0644 \u0688\u06cc\u0628\u06af \u0645\u0631\u062d\u0644\u06c1 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba:<\/p>\n<pre><code class=\"language-yaml\">- name: Print OIDC token claims\n  run: |\n    TOKEN=((curl -s -H \"Authorization: Bearer )ACTIONS_ID_TOKEN_REQUEST_TOKEN\" \n      \"$ACTIONS_ID_TOKEN_REQUEST_URL&audience=sts.amazonaws.com\" | jq -r '.value')\n    echo $TOKEN | cut -d '.' -f2 | base64 -d 2>\/dev\/null | jq .\n<\/code><\/pre>\n<h3 id=\"heading-error-could-not-load-credentials-from-any-providers\">\u063a\u0644\u0637\u06cc: <code>Could not load credentials from any providers<\/code><\/h3>\n<p>\u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u062a\u0642\u0631\u06cc\u0628\u0627 \u06c1\u0645\u06cc\u0634\u06c1\u06d4 <code>id-token: write<\/code> \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0628\u0631\u0627\u06c1 \u06a9\u0631\u0645 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0648 \u062f\u0648 \u0628\u0627\u0631 \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba:<\/p>\n<pre><code class=\"language-yaml\">permissions:\n  id-token: write\n  contents: read\n<\/code><\/pre>\n<h3 id=\"heading-error-accessdenied-when-calling-an-aws-service\">\u063a\u0644\u0637\u06cc: <code>AccessDenied<\/code> AWS \u0633\u0631\u0648\u0633\u0632 \u06a9\u0648 \u06a9\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u0648\u0642\u062a<\/h3>\n<p>\u062a\u0648\u062b\u06cc\u0642 \u06a9\u0627\u0645\u06cc\u0627\u0628 \u0631\u06c1\u06cc\u060c \u0644\u06cc\u06a9\u0646 \u0622\u067e \u06a9\u06d2 IAM \u0631\u0648\u0644 \u06a9\u0648 \u0648\u06c1 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u062c\u0633 \u06a9\u06cc \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u0648\u0634\u0634 \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4 \u06a9\u0631\u062f\u0627\u0631 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0645\u0646\u0633\u0644\u06a9 \u0627\u062c\u0627\u0632\u062a\u0648\u06ba \u06a9\u06cc \u067e\u0627\u0644\u06cc\u0633\u06cc \u06a9\u0648 \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u063a\u0644\u0637\u06cc \u06a9\u06d2 \u067e\u06cc\u063a\u0627\u0645 \u0645\u06cc\u06ba \u0645\u062e\u0635\u0648\u0635 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u0633\u06d2 \u0627\u0633 \u06a9\u0627 \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-conclusion\">\u0646\u062a\u06cc\u062c\u06c1<\/h2>\n<p>\u06c1\u0645 \u0646\u06d2 GitHub Secrets \u0645\u06cc\u06ba \u062c\u0627\u0645\u062f\u060c \u0637\u0648\u06cc\u0644 \u0627\u0644\u0645\u062f\u062a AWS \u0627\u0633\u0646\u0627\u062f \u06a9\u0648 \u0630\u062e\u06cc\u0631\u06c1 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u0644\u06d2 \u06a9\u0631 OIDC \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u0628\u063a\u06cc\u0631 \u06a9\u0644\u06cc\u062f\u06cc \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0648 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0627\u06d4 \u0622\u067e \u0646\u06d2 \u062c\u0648 \u062d\u0627\u0635\u0644 \u06a9\u06cc\u0627 \u0648\u06c1 \u06cc\u06c1\u0627\u06ba \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p>AWS \u0646\u06d2 GitHub \u06a9\u0648 \u0627\u06cc\u06a9 \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f OIDC \u0634\u0646\u0627\u062e\u062a \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0646\u0646\u062f\u06c1 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0631\u062c\u0633\u0679\u0631 \u06a9\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0645\u06cc\u06ba \u0646\u06d2 \u0627\u06cc\u06a9 \u0645\u062e\u0635\u0648\u0635 \u0631\u06cc\u067e\u0648\u0632\u0679\u0631\u06cc \u0633\u06d2 \u0645\u0646\u0633\u0644\u06a9 \u0627\u0633\u06a9\u0648\u067e\u0688 \u0679\u0631\u0633\u0679 \u067e\u0627\u0644\u06cc\u0633\u06cc \u06a9\u06d2 \u0633\u0627\u062a\u06be IAM \u0631\u0648\u0644 \u0628\u0646\u0627\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0622\u067e \u0646\u06d2 \u0627\u0633 \u06a9\u0631\u062f\u0627\u0631 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0645 \u0633\u06d2 \u06a9\u0645 \u0627\u0633\u062a\u062d\u0642\u0627\u0642 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a\u06cc\u06ba \u0645\u0646\u0633\u0644\u06a9 \u06a9\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0645\u06cc\u06ba \u0646\u06d2 \u0645\u062e\u062a\u0635\u0631 \u0645\u062f\u062a \u06a9\u06d2 AWS \u0627\u0633\u0646\u0627\u062f \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 GitHub \u0627\u06cc\u06a9\u0634\u0646 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0627\u06d4<\/p>\n<\/li>\n<li>\n<p>\u062a\u0635\u062f\u06cc\u0642 \u06a9\u06d2 \u0628\u06c1\u0627\u0624 \u06a9\u06d2 \u0627\u062e\u062a\u062a\u0627\u0645 \u0633\u06d2 \u0622\u062e\u0631 \u062a\u06a9 \u062a\u0648\u062b\u06cc\u0642 \u06a9\u06cc \u06af\u0626\u06cc\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u06cc\u06c1 \u067e\u06cc\u0679\u0631\u0646 \u062a\u0645\u0627\u0645 AWS \u0633\u0631\u0648\u0633\u0632 \u067e\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0628\u0634\u0645\u0648\u0644 S3\u060c ECS\u060c Lambda\u060c ECR\u060c \u0627\u0648\u0631 Secrets Manager\u06d4 \u06cc\u06c1\u0627\u06ba \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u06cc \u0645\u062b\u0627\u0644 S3 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u0622\u067e \u0627\u0633\u06d2 \u0627\u062c\u0627\u0632\u062a \u06a9\u06cc \u067e\u0627\u0644\u06cc\u0633\u06cc \u0627\u0648\u0631 \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u06a9\u0645\u0627\u0646\u0688 \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06a9\u06d2 \u06a9\u0633\u06cc \u0628\u06be\u06cc \u0633\u0631\u0648\u0633 \u067e\u0631 \u0644\u0627\u06af\u0648 \u06a9\u0631\u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0622\u067e \u0645\u0632\u06cc\u062f \u062c\u0627\u0646\u0646\u0627 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0648 \u0627\u0633 \u067e\u0631 \u0627\u06cc\u06a9 \u0646\u0638\u0631 \u0688\u0627\u0644\u06cc\u06ba:<\/p>\n<p><em>\u0627\u06af\u0631 \u0622\u067e DevOps \u067e\u0631\u06cc\u06a9\u0679\u0633 \u0628\u0646\u0627 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0646\u0641\u0631\u0627\u0633\u0679\u0631\u06a9\u0686\u0631 \u0622\u0679\u0648\u0645\u06cc\u0634\u0646\u060c CI\/CD\u060c \u0627\u0648\u0631 \u067e\u0644\u06cc\u0679 \u0641\u0627\u0631\u0645 \u0627\u0646\u062c\u06cc\u0646\u0626\u0631\u0646\u06af \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0645\u06a9\u0645\u0644\u060c \u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u06cc\u0627\u0631 \u062d\u0648\u0627\u0644\u06c1 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba:<\/em> <em><strong>\u0627\u0633\u0679\u0627\u0631\u0679 \u0627\u067e DevOps \u0641\u06cc\u0644\u0688 \u06af\u0627\u0626\u06cc\u0688<\/strong><\/em><em>. \u06c1\u0645 \u062d\u0642\u06cc\u0642\u06cc AWS \u0645\u0627\u062d\u0648\u0644 \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06c1\u0648\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0646\u0645\u0648\u0646\u0648\u06ba\u060c \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679\u0633 \u0627\u0648\u0631 \u0631\u0646 \u0628\u06a9\u0633 \u06a9\u0627 \u0627\u062d\u0627\u0637\u06c1 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/em><\/p>\n<p><em>\u0622\u067e \u0628\u06be\u06cc \u0645\u062c\u06be \u0633\u06d2 \u0631\u0627\u0628\u0637\u06c1 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/em> <em>\u0644\u0646\u06a9\u0688<\/em><\/p>\n<h2 id=\"heading-references\">\u062d\u0648\u0627\u0644\u06c1 \u062c\u0627\u062a<\/h2>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0627\u06af\u0631 \u0622\u067e \u0646\u06d2 \u0627\u0633\u06d2 \u0628\u0686\u0627 \u0644\u06cc\u0627\u06d4 AWS_ACCESS_KEY_ID \u0627\u0648\u0631 AWS_SECRET_ACCESS_KEY AWS \u0645\u06cc\u06ba \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 GitHub \u0633\u06cc\u06a9\u0631\u06cc\u0679 \u0627\u06a9\u06cc\u0644\u0627 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0633\u0628 \u0633\u06d2 \u0639\u0627\u0645 \u0637\u0631\u06cc\u0642\u06c1 \u06c1\u06d2 \u0627\u0648\u0631 CI\/CD \u067e\u0627\u0626\u067e \u0644\u0627\u0626\u0646\u0648\u06ba \u0645\u06cc\u06ba \u0633\u0628 \u0633\u06d2 \u0628\u0691\u06d2 \u062d\u0641\u0627\u0638\u062a\u06cc \u062e\u0637\u0631\u0627\u062a \u0645\u06cc\u06ba \u0633\u06d2 \u0627\u06cc\u06a9 \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u06cc \u0648\u062c\u06c1 \u06cc\u06c1 \u06c1\u06d2: \u062c\u0627\u0645\u062f \u0627\u0633\u0646\u0627\u062f \u06a9\u06cc \u0645\u06cc\u0639\u0627\u062f \u062e\u0648\u062f \u062e\u062a\u0645 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u063a\u0644\u0637 [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":23163,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-23162","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/23162","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/comments?post=23162"}],"version-history":[{"count":1,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/23162\/revisions"}],"predecessor-version":[{"id":23164,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/23162\/revisions\/23164"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/media\/23163"}],"wp:attachment":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/media?parent=23162"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/categories?post=23162"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/tags?post=23162"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}