﻿
{"id":26553,"date":"2023-09-23T19:55:19","date_gmt":"2023-09-23T19:55:19","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=26553"},"modified":"2023-09-23T19:57:13","modified_gmt":"2023-09-23T19:57:13","slug":"net-uygulamalari-icin-detayli-aws-credentials-konfigurasyonu","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/net-uygulamalari-icin-detayli-aws-credentials-konfigurasyonu\/","title":{"rendered":".NET Uygulamalar\u0131 \u0130\u00e7in Detayl\u0131 AWS Credentials Konfig\u00fcrasyonu"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Depolama, bilgi i\u015flem ve veritabanlar\u0131 gibi AWS servislerine eri\u015fim maksatl\u0131 authentication yapabilmek i\u00e7in kulland\u0131\u011f\u0131m\u0131z ve AWS&#8217;nin g\u00fcvenlik modelinin temel bir par\u00e7as\u0131 olan AWS Credentials, korumal\u0131 hizmetlere eri\u015fim i\u00e7in geli\u015ftiricilerin .NET uygulamalar\u0131n\u0131\/ortamlar\u0131n\u0131 gerekli kimlik bilgileriyle yap\u0131land\u0131rma ihtiya\u00e7lar\u0131na kar\u015f\u0131n \u00e7al\u0131\u015fma s\u00fcre\u00e7lerinde bizlere e\u015flik etmekte ve t\u00fcrl\u00fc y\u00f6ntemler sa\u011flamaktad\u0131r. Bu i\u00e7eri\u011fimizde .NET uygulamalar\u0131 i\u00e7in AWS Credentials konfig\u00fcrasyonu ve y\u00f6netimi a\u00e7\u0131s\u0131ndan olabildi\u011fince best practices y\u00f6ntemleri ele al\u0131yor olacak ve \u00e7al\u0131\u015fma s\u00fcre\u00e7lerindeki uygulama ayarlar\u0131n\u0131, environment variable&#8217;lar\u0131, AWS CLI profiles de\u011ferlerini ve IAM role&#8217;lerini kullanarak AWS Credential bilgilerini g\u00fcvence alt\u0131na alman\u0131n \u00e7e\u015fitli yollar\u0131n\u0131 inceliyor olaca\u011f\u0131z. Ve t\u00fcm bunlar\u0131n yan\u0131nda AWS kimlik bilgileri olu\u015fturmaya, olu\u015fturulan bu kimliklere\/kullan\u0131c\u0131lara kar\u015f\u0131n politikalar yani izinler vermeye de\u011finece\u011fiz. O halde gelin buyurun ba\u015flayal\u0131m&#8230;<\/p>\n<h3>IAM \u0130le Kullan\u0131c\u0131 ve Kimlik Bilgileri Olu\u015fturma<\/h3>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu.png\" alt=\".NET Uygulamalar\u0131 \u0130\u00e7in Detayl\u0131 AWS Credentials Konfig\u00fcrasyonu\" width=\"687\" height=\"249\" class=\"aligncenter size-full wp-image-26556\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu.png 687w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-300x109.png 300w\" sizes=\"auto, (max-width: 687px) 100vw, 687px\" \/><\/a>AWS Identity and Access Management(IAM), AWS kaynaklar\u0131na eri\u015fimi y\u00f6netmek ve denetlemek i\u00e7in kullan\u0131lan, kimlik do\u011frulama ve yetkilendirme y\u00f6netimini sa\u011flayan bir servistir.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-1.png\" alt=\".NET Uygulamalar\u0131 \u0130\u00e7in Detayl\u0131 AWS Credentials Konfig\u00fcrasyonu\" width=\"276\" height=\"369\" class=\"aligncenter size-full wp-image-26557\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-1.png 276w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-1-224x300.png 224w\" sizes=\"auto, (max-width: 276px) 100vw, 276px\" \/><\/a>Bu serviste, yukar\u0131daki g\u00f6rselde oldu\u011fu gibi &#8216;Users&#8217; sekmesi \u00fczerinden mevcut kullan\u0131c\u0131lara eri\u015febilir ya da yeni kullan\u0131c\u0131 olu\u015fturma gibi i\u015flemleri ger\u00e7ekle\u015ftirebilirsiniz.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu.gif\" alt=\".NET Uygulamalar\u0131 \u0130\u00e7in Detayl\u0131 AWS Credentials Konfig\u00fcrasyonu\" width=\"800\" height=\"387\" class=\"aligncenter size-full wp-image-26558\" \/><\/a>Misal olarak, yukar\u0131daki ekran kayd\u0131na bakarsan\u0131z e\u011fer &#8216;gncy.yldz&#8217; isimli bir kullan\u0131c\u0131, o anda &#8216;S3&#8217; politikalar\u0131yla ili\u015fkilendirilerek olu\u015fturulmu\u015f olan &#8216;test-group&#8217; isimli bir gruba direkt eklenerek olu\u015fturulmaktad\u0131r.<\/p>\n<p>Bu i\u015flemden sonra tekrar &#8216;Users&#8217; sekmesine gelirseniz, olu\u015fturulan kullan\u0131c\u0131n\u0131n listelendi\u011fini g\u00f6rebilirsiniz.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-2.png\" alt=\".NET Uygulamalar\u0131 \u0130\u00e7in Detayl\u0131 AWS Credentials Konfig\u00fcrasyonu\" width=\"282\" height=\"211\" class=\"aligncenter size-full wp-image-26559\" \/><\/a>\u0130lgili kullan\u0131c\u0131ya t\u0131klad\u0131\u011f\u0131n\u0131zda, kullan\u0131c\u0131yla ilgili yetkilerin ve grup bilgilerinin oldu\u011fu detaylara eri\u015feceksiniz. Gelecek olan ekran \u00fczerinden &#8216;Security credentials&#8217; sekmesine geldi\u011finizde kullan\u0131c\u0131n\u0131n eri\u015fimleriyle ilgili birka\u00e7 se\u00e7enekle kar\u015f\u0131la\u015facaks\u0131n\u0131z. Bu se\u00e7eneklerden \u00f6zellikle &#8216;Access keys&#8217; b\u00f6l\u00fcm\u00fc, ilgili kullan\u0131c\u0131ya AWS CLI&#8217;dan, powershell tool&#8217;lar\u0131ndan, AWS SDK&#8217;den ve AWS API request&#8217;lerinden eri\u015fim s\u00fcre\u00e7leri i\u00e7in olduk\u00e7a \u00f6nem arz eden access key sa\u011flamaktad\u0131r.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-1.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-1.gif\" alt=\".NET Uygulamalar\u0131 \u0130\u00e7in Detayl\u0131 AWS Credentials Konfig\u00fcrasyonu\" width=\"600\" height=\"290\" class=\"aligncenter size-full wp-image-26560\" \/><\/a>Yukar\u0131daki ekran kayd\u0131nda g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere bir access key \u00fcretip, elde etmekteyiz. Tabi bu s\u00fcre\u00e7te ister bir a\u00e7\u0131klama sat\u0131r\u0131 da ekleyebilirsiniz ve \u00fcretilen access key&#8217;i de .csv dosyas\u0131 olarak elde edebilirsiniz.<\/p>\n<p>\u015eimdi elimizde bulunan bu access key e\u015fli\u011finde, AWS S3 politikalar\u0131na eri\u015fim yetkilerine sahip oldu\u011fumuzu biliyoruz. Haliyle \u015f\u00f6yle a\u015fa\u011f\u0131daki gibi basit bir uygulama \u00fczerinden S3 servisindeki mevcut bucket&#8217;lar\u0131 listeleyen bir \u00e7al\u0131\u015fmayla access key&#8217;in kullan\u0131m\u0131n\u0131 \u00f6rneklendirebiliriz.<\/p>\n<p>Gerekli olan k\u00fct\u00fcphaneler;<\/p>\n<ul>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/AWSSDK.S3\/\" rel=\"noopener\" target=\"_blank\">AWSSDK.S3<\/a><\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/AWSSDK.Extensions.NETCore.Setup\/\" rel=\"noopener\" target=\"_blank\">AWSSDK.Extensions.NETCore.Setup<\/a><\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-3.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-3.png\" alt=\".NET Uygulamalar\u0131 \u0130\u00e7in Detayl\u0131 AWS Credentials Konfig\u00fcrasyonu\" width=\"756\" height=\"126\" class=\"aligncenter size-full wp-image-26562\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-3.png 756w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-3-300x50.png 300w\" sizes=\"auto, (max-width: 756px) 100vw, 756px\" \/><\/a><em>&#8216;Program.cs&#8217;;<\/em><\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nusing Amazon.S3;\r\n\r\nvar builder = WebApplication.CreateBuilder(args);\r\n\r\nbuilder.Services.AddDefaultAWSOptions(builder.Configuration.GetAWSOptions());\r\nbuilder.Services.AddAWSService&lt;IAmazonS3&gt;();\r\n\r\nvar app = builder.Build();\r\n\r\napp.MapGet(&quot;\/&quot;, async () =&gt;\r\n{\r\n    var s3Client = new AmazonS3Client(&quot;***Access Key***&quot;, &quot;***Secret Key***&quot;);\r\n    var data = await s3Client.ListBucketsAsync();\r\n    var buckets = data.Buckets.Select(b =&gt; b.BucketName);\r\n    return buckets;\r\n});\r\n\r\napp.Run();\r\n<\/pre>\n<\/div>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-4.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-4.png\" alt=\".NET Uygulamalar\u0131 \u0130\u00e7in Detayl\u0131 AWS Credentials Konfig\u00fcrasyonu\" width=\"380\" height=\"97\" class=\"aligncenter size-full wp-image-26564\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-4.png 380w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-4-300x77.png 300w\" sizes=\"auto, (max-width: 380px) 100vw, 380px\" \/><\/a>G\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere access key sayesinde gereken response&#8217;u alabilmekteyiz.<\/p>\n<p><strong>Dikkat !<\/strong> Burada basit bir \u00f6rneklendirme yap\u0131ld\u0131\u011f\u0131 i\u00e7in kod i\u00e7erisinde access key ve secret key de\u011ferlerinin usuls\u00fczce kullan\u0131m\u0131na g\u00f6z yumuldu\u011funu, bu durumun \u00f6rnek te\u015fkil etmemesi gerekti\u011fini \u00f6nemle vurgular\u0131m. Vurgular\u0131m \u00e7\u00fcnk\u00fc kod i\u00e7erisinde tan\u0131mlanm\u0131\u015f olan bu tarz kritik bilgiler developer taraf\u0131ndan fark\u0131nda olmaks\u0131z\u0131n remote repository&#8217;lere g\u00f6nderilip, oralara eri\u015febilen iyi\/k\u00f6t\u00fc niyetli ki\u015filerin inisiyatifine sunulabilir. Ayr\u0131ca bu tarz kod i\u00e7inde sonradan de\u011fi\u015ftirilebilecek de\u011ferlerin tutulmas\u0131, kodun a\u015f\u0131r\u0131 ba\u011f\u0131ml\u0131 olmas\u0131na ve ihtiya\u00e7 dahilinde tekrardan derlenmesi gerekti\u011fine sebebiyet verecektirler. Haliyle bu tarz bilgileri kod i\u00e7erisinde bar\u0131nd\u0131rmaktansa, Asp.NET Core mimarisinde direkt akla gelen appsettings.json dosyas\u0131nda tutarak y\u00f6netebilirsiniz lakin bu \u00e7\u00f6z\u00fcm de ilk duruma kar\u015f\u0131 kesin bir \u00f6nlem almamakta ve hala proje i\u00e7erisinde kritik bilgilerin tutulmas\u0131na ve remote noktalara g\u00f6nderilme riskini ta\u015f\u0131maya devam etmektedir. Ha bu durumda da remote repository&#8217;e appsettings.json dosyas\u0131n\u0131 g\u00f6ndermemeye \u00f6zen g\u00f6sterirsiniz. Belki bu bir \u00e7\u00f6z\u00fcmd\u00fcr ama ne kadar \u00e7\u00f6z\u00fcmd\u00fcr \ud83d\ude42<\/p>\n<p><em><strong>Hocam&#8230; madem \u00f6yle, o halde Secret Manager&#8217;\u0131 kullanal\u0131m!<\/strong><\/em> dedi\u011finizi duyar gibiyim&#8230; Evet, bu y\u00f6ntem, credentials bilgilerini appsettings.json dosyas\u0131nda saklamaktan daha g\u00fcvenlidir. Ne de olsa burada tutulacak bilgilere sade ve sadece developer&#8217;\u0131n local&#8217;inden eri\u015filebilmektedir ve daha da \u00f6nemlisi remote noktalara g\u00f6nderilmemektedir. \u00c7\u00f6z\u00fcm m\u00fcd\u00fcr? Aslanlar gibi \u00e7\u00f6z\u00fcmd\u00fcr.<\/p>\n<p>T\u00fcm bu y\u00f6ntemlerin d\u0131\u015f\u0131nda environment variable&#8217;lar\u0131 da kullanabilirsiniz. Ne de olsa yukar\u0131daki y\u00f6ntemler yaln\u0131zca local development s\u00fcre\u00e7lerinde ihtiyac\u0131m\u0131z\u0131 gidermektedir. Uygulamay\u0131 deploy ettikten sonra bu tarz kritik arz eden verileri, kullan\u0131ld\u0131\u011f\u0131 sunucuda environment variable olarak tan\u0131mlamak hem daha g\u00fcvenli hem de daha y\u00f6netilebilir olacakt\u0131r.<\/p>\n<p>Ama en kral \u00e7\u00f6z\u00fcm\u00fc sorarsan\u0131z e\u011fer AWS taraf\u0131ndan sunulmu\u015f olan AWS CLI profile&#8217;lar\u0131 e\u015fli\u011finde kullan\u0131lan <em>AWS Local Storage<\/em>&#8216;d\u0131r diyebilirim. Hat\u0131rlarsan\u0131z e\u011fer <a href=\"https:\/\/www.gencayyildiz.com\/blog\/asp-net-core-aws-s3-ile-dosya-islemleri-gerceklestirme-upload-download-delete-files\/\" rel=\"noopener\" target=\"_blank\">AWS S3 \u0130le Dosya \u0130\u015flemleri Ger\u00e7ekle\u015ftirme<\/a> ba\u015fl\u0131kl\u0131 makalemizde tecr\u00fcbe etti\u011fimiz gibi, AWS IAM&#8217;den ald\u0131\u011f\u0131m\u0131z access key ve secret key de\u011ferlerini geli\u015ftirme s\u00fcrecinde AWS CLI arac\u0131l\u0131\u011f\u0131yla geli\u015ftiricinin local makinesinde gayet g\u00fcvenli bir \u015fekilde depolayabilmekte ve kod i\u00e7erisinde herhangi bir kritik de\u011fer tutmaks\u0131z\u0131n operasyonlar\u0131m\u0131z\u0131 y\u00fcr\u00fctebilmekteyiz. Tabi bunun i\u00e7in referans etti\u011fimiz i\u00e7eri\u011fimizde oldu\u011fu gibi \u00f6nce AWS CLI&#8217;\u0131 bilgisayar\u0131n\u0131za y\u00fcklemeli, ard\u0131ndan da a\u015fa\u011f\u0131daki talimat neticesinde AWS Local Storage&#8217;da access key ve secret key&#8217;i depolayan bir profil olu\u015fturulmal\u0131d\u0131r.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-5.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-5.png\" alt=\".NET Uygulamalar\u0131 \u0130\u00e7in Detayl\u0131 AWS Credentials Konfig\u00fcrasyonu\" width=\"512\" height=\"95\" class=\"aligncenter size-full wp-image-26565\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-5.png 512w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-5-300x56.png 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/a>\u0130\u015fte bu kadar.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-6.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-6.png\" alt=\".NET Uygulamalar\u0131 \u0130\u00e7in Detayl\u0131 AWS Credentials Konfig\u00fcrasyonu\" width=\"94\" height=\"91\" class=\"alignleft size-full wp-image-26566\" \/><\/a><br \/>\nBu talimat neticesinde ilgili bilgilerin <code>C:\\Users\\{name}\\.aws<\/code> dizininde, yan g\u00f6rseldeki dosyalar i\u00e7erisinde a\u015fa\u011f\u0131daki gibi tutuldu\u011funu g\u00f6rebilirsiniz.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-7.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-7.png\" alt=\".NET Uygulamalar\u0131 \u0130\u00e7in Detayl\u0131 AWS Credentials Konfig\u00fcrasyonu\" width=\"719\" height=\"295\" class=\"aligncenter size-full wp-image-26567\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-7.png 719w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-7-300x123.png 300w\" sizes=\"auto, (max-width: 719px) 100vw, 719px\" \/><\/a>Ee haliyle bu vaziyette kodu in\u015fa etmek istiyorsan\u0131z yapman\u0131z gereken a\u015fa\u011f\u0131daki gibi &#8216;IAmazonS3&#8217; interface&#8217;ini inject etmek ve gelecek olan instance \u00fczerinden operasyonlar\u0131 y\u00fcr\u00fctmektir.<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n.\r\n.\r\n.\r\napp.MapGet(&quot;\/&quot;, async (IAmazonS3 s3Client) =&gt;\r\n{\r\n    var data = await s3Client.ListBucketsAsync();\r\n    var buckets = data.Buckets.Select(b =&gt; b.BucketName);\r\n    return buckets;\r\n});.\r\n.\r\n.\r\n<\/pre>\n<\/div>\n<p>AWS SDK, developer local&#8217;inde \u00e7al\u0131\u015facak olan bu kodun ihtiya\u00e7 duyaca\u011f\u0131 access key ve secret key de\u011ferlerini AWS profile&#8217;lar\u0131ndan alaca\u011f\u0131n\u0131 bilecektir. Burada taraf\u0131m\u0131zca tek yap\u0131lmas\u0131 gereken \u015fey hangi profile bilgisi oldu\u011funu appsettings.json \u00fczerinden a\u015fa\u011f\u0131daki gibi bildirmektir.<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n{\r\n  &quot;Logging&quot;: {\r\n    &quot;LogLevel&quot;: {\r\n      &quot;Default&quot;: &quot;Information&quot;,\r\n      &quot;Microsoft.AspNetCore&quot;: &quot;Warning&quot;\r\n    }\r\n  },\r\n  &quot;AllowedHosts&quot;: &quot;*&quot;,\r\n  &quot;AWS&quot;: {\r\n    &quot;Profile&quot;: &quot;my-profile&quot;,\r\n    &quot;Region&quot;: &quot;us-east-1&quot;\r\n  }\r\n}\r\n<\/pre>\n<\/div>\n<p>\u0130\u015fte bu kadar&#8230; B\u00f6ylece AWS Local Storage sayesinde, ayn\u0131 kullan\u0131c\u0131 yetkilerine ihtiya\u00e7 olan farkl\u0131 projelerde s\u00fcrekli access key ve secret key de\u011ferleriyle u\u011fra\u015fmaya gerek kalmaks\u0131z\u0131n rahatl\u0131kla \u00e7al\u0131\u015fmalar\u0131n\u0131z\u0131 ger\u00e7ekle\u015ftirebilirsiniz.<\/p>\n<p>G\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere AWS d\u00fcnyas\u0131 d\u0131\u015f\u0131ndaki bir uygulamaya eri\u015fim izni bu kadar basit bir \u015fekilde ger\u00e7ekle\u015ftirilmektedir ve bu izin neticesinde elde edilen konfig\u00fcrasyonel de\u011ferleri, yaz\u0131l\u0131mla ili\u015fkilendirme s\u00fcrecinde sergileyebilece\u011fimiz davran\u0131\u015flarda incelediklerimizden ibarettir.<\/p>\n<p>\u015eimdi de AWS altyap\u0131s\u0131nda bar\u0131nd\u0131r\u0131lacak uygulamalar a\u00e7\u0131s\u0131ndan olay\u0131 de\u011ferlendirmeye ge\u00e7elim ve \u00f6rne\u011fin bir AWS Lambda&#8217;n\u0131n, S3 servisindeki mevcut bucket&#8217;lar\u0131 listeleyebilmesi i\u00e7in nas\u0131l bir yol haritas\u0131 izlenmesi gerekti\u011fini g\u00f6zlemleyelim.<\/p>\n<h3>IAM Rolleri<\/h3>\n<p>\u015eimdi bunun i\u00e7in <a href=\"https:\/\/www.gencayyildiz.com\/blog\/net-7-aws-lambda-ile-serverless-computing\/\" rel=\"noopener\" target=\"_blank\">AWS Lambda \u0130le Serverless Computing<\/a>, <a href=\"https:\/\/www.gencayyildiz.com\/blog\/net-lambda-authorizer-ile-amazon-api-gatewayin-guvenligini-saglama\/\" rel=\"noopener\" target=\"_blank\">Lambda Authorizer \u0130le Amazon API Gateway\u2019in G\u00fcvenli\u011fini Sa\u011flama<\/a> ve <a href=\"https:\/\/www.gencayyildiz.com\/blog\/aws-lambda-ile-serverless-rest-api-gelistirme-asp-net-core-api\/\" rel=\"noopener\" target=\"_blank\">AWS Lambda \u0130le Serverless REST API Geli\u015ftirme (Asp.NET Core API)<\/a> ba\u015fl\u0131kl\u0131 makalelerimizde tecr\u00fcbe etti\u011fimiz gibi bir AWS Lambda projesi olu\u015ftural\u0131m ve S3 servisleriyle \u00e7al\u0131\u015fmas\u0131n\u0131 kurgulad\u0131ktan sonra AWS&#8217;ye deploy edelim.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-8.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-8.png\" alt=\".NET Uygulamalar\u0131 \u0130\u00e7in Detayl\u0131 AWS Credentials Konfig\u00fcrasyonu\" width=\"927\" height=\"662\" class=\"aligncenter size-full wp-image-26570\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-8.png 927w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-8-300x214.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-8-768x548.png 768w\" sizes=\"auto, (max-width: 927px) 100vw, 927px\" \/><\/a><\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nusing Amazon.Lambda.Core;\r\nusing Amazon.S3;\r\n\r\n\/\/ Assembly attribute to enable the Lambda function's JSON input to be converted into a .NET class.\r\n&#x5B;assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.SystemTextJson.DefaultLambdaJsonSerializer))]\r\n\r\nnamespace AWS_Credentials_Configurations_Example_Lambda;\r\n\r\npublic class Function\r\n{\r\n\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ A simple function that takes a string and does a ToUpper\r\n    \/\/\/ &lt;\/summary&gt;\r\n    \/\/\/ &lt;param name=&quot;input&quot;&gt;&lt;\/param&gt;\r\n    \/\/\/ &lt;param name=&quot;context&quot;&gt;&lt;\/param&gt;\r\n    \/\/\/ &lt;returns&gt;&lt;\/returns&gt;\r\n    public async Task&lt;IEnumerable&lt;string&gt;&gt; FunctionHandler(ILambdaContext context)\r\n    {\r\n        var s3Client = new AmazonS3Client();\r\n        var data = await s3Client.ListBucketsAsync();\r\n        var buckets = data.Buckets.Select(b =&gt; b.BucketName);\r\n        return buckets.ToList();\r\n    }\r\n}\r\n<\/pre>\n<\/div>\n<p>Yukar\u0131da referans edilen i\u00e7eriklerden de hat\u0131rlayaca\u011f\u0131n\u0131z \u00fczere AWS Lambda projelerinde, profile ve region parametreleri &#8216;aws-lambda-tools-defaults.json&#8217; dosyas\u0131nda tutulmaktad\u0131r. Tabi bu dosyadaki de\u011ferler, <em>AWS Local Storage<\/em>&#8216;da yap\u0131land\u0131rd\u0131\u011f\u0131m\u0131z de\u011ferler taraf\u0131ndan ezilece\u011finden dolay\u0131 tekrardan o noktalara girme gere\u011fi g\u00f6rm\u00fcyorum. Velhas\u0131l, olu\u015fturdu\u011fumuz projeyi Lambda Mock arac\u0131yla \u00e7al\u0131\u015ft\u0131r\u0131p a\u015fa\u011f\u0131daki gibi test edebiliriz.<div id=\"attachment_26571\" style=\"width: 1822px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-9.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-26571\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-9.png\" alt=\".NET Uygulamalar\u0131 \u0130\u00e7in Detayl\u0131 AWS Credentials Konfig\u00fcrasyonu\" width=\"1812\" height=\"908\" class=\"size-full wp-image-26571\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-9.png 1812w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-9-300x150.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-9-1024x513.png 1024w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-9-768x385.png 768w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-9-1536x770.png 1536w\" sizes=\"auto, (max-width: 1812px) 100vw, 1812px\" \/><\/a><p id=\"caption-attachment-26571\" class=\"wp-caption-text\">.NET Uygulamalar\u0131 \u0130\u00e7in Detayl\u0131 AWS Credentials Konfig\u00fcrasyonu<\/p><\/div><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-10.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-10.png\" alt=\".NET Uygulamalar\u0131 \u0130\u00e7in Detayl\u0131 AWS Credentials Konfig\u00fcrasyonu\" width=\"225\" height=\"178\" class=\"alignleft size-full wp-image-26572\" \/><\/a>Uygulaman\u0131n local&#8217;de \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6rd\u00fc\u011f\u00fcm\u00fcze g\u00f6re art\u0131k AWS&#8217;ye aktarabiliriz. Bunun i\u00e7in yandaki gibi &#8216;Publish to AWS Lambda&#8230;&#8217; sekmesi \u00fczerinden s\u00fcreci ba\u015flatabiliriz.<\/p>\n<p>Tam a\u015fa\u011f\u0131daki gibi yap\u0131land\u0131rmay\u0131 ger\u00e7ekle\u015ftirirken hi\u00e7 beklenmedik bir \u015fekilde IAM rolleri ve listesine dair; <em style=\"color:red;\">Failed to retrieve list of iam roles and policies.<\/em> hatas\u0131yla da kar\u015f\u0131labilirsiniz.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-2.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-2.gif\" alt=\".NET Uygulamalar\u0131 \u0130\u00e7in Detayl\u0131 AWS Credentials Konfig\u00fcrasyonu\" width=\"800\" height=\"529\" class=\"aligncenter size-full wp-image-26573\" \/><\/a>Bu hatay\u0131 a\u015fabilmek i\u00e7in AWS&#8217;de IAM servisi \u00fczerinden ilgili kullan\u0131c\u0131ya a\u015fa\u011f\u0131daki gibi AdministratorAccess politikas\u0131n\u0131n verilmesi yeterli olacakt\u0131r.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-3.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-3.gif\" alt=\".NET Uygulamalar\u0131 \u0130\u00e7in Detayl\u0131 AWS Credentials Konfig\u00fcrasyonu\" width=\"800\" height=\"401\" class=\"aligncenter size-full wp-image-26574\" \/><\/a>Bu hatay\u0131 da a\u015ft\u0131ktan sonra AWS Lambda&#8217;y\u0131 g\u00f6nderirken kar\u015f\u0131m\u0131za \u00e7\u0131kan &#8216;Role Name&#8217; k\u0131sm\u0131nda, S3 servislerine temel GET\/PUT request izinlerini ve Cloudwatch loglama davran\u0131\u015f\u0131n\u0131 bar\u0131nd\u0131ran &#8216;AWSLambdaExecute&#8217; rol\u00fcn\u00fcn se\u00e7ilmesi yeterli olacakt\u0131r. <a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-11.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-11.png\" alt=\".NET Uygulamalar\u0131 \u0130\u00e7in Detayl\u0131 AWS Credentials Konfig\u00fcrasyonu\" width=\"825\" height=\"545\" class=\"aligncenter size-full wp-image-26575\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-11.png 825w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-11-300x198.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-11-768x507.png 768w\" sizes=\"auto, (max-width: 825px) 100vw, 825px\" \/><\/a>Bu vaziyette projenizi AWS Lambda&#8217;ya upload edebilir ve bunu da Lambda platformundan g\u00f6zlemleyebilirsiniz.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-12.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-12.png\" alt=\".NET Uygulamalar\u0131 \u0130\u00e7in Detayl\u0131 AWS Credentials Konfig\u00fcrasyonu\" width=\"430\" height=\"231\" class=\"aligncenter size-full wp-image-26576\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-12.png 430w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-12-300x161.png 300w\" sizes=\"auto, (max-width: 430px) 100vw, 430px\" \/><\/a>AWS&#8217;ye y\u00fckledi\u011fimiz bu function&#8217;\u0131 aray\u00fcz \u00fczerinden test ederseniz e\u011fer a\u015fa\u011f\u0131daki gibi &#8216;Access Denied&#8217; hatas\u0131yla kar\u015f\u0131la\u015facaks\u0131n\u0131z.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-13.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-13.png\" alt=\".NET Uygulamalar\u0131 \u0130\u00e7in Detayl\u0131 AWS Credentials Konfig\u00fcrasyonu\" width=\"548\" height=\"283\" class=\"aligncenter size-full wp-image-26578\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-13.png 548w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-13-300x155.png 300w\" sizes=\"auto, (max-width: 548px) 100vw, 548px\" \/><\/a>Evet, g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere AWS Lambda servisinde bulunan function \u00fczerinden S3 servisine eri\u015fimin reddedildi\u011fini g\u00f6zlemliyoruz. Biz biraz \u00f6nce &#8216;AWSLambdaExecute&#8217; rol\u00fcn\u00fc vermi\u015f olsak da bu rol, S3 servislerine eri\u015febilmek i\u00e7in gerekli izinlere sahip de\u011fildir. \u0130\u015fte bunun i\u00e7in bu izinlere sahip olan rol\u00fc ilgili function&#8217;a tan\u0131mlamam\u0131z gerekmektedir. Bunun i\u00e7in de yine AWS aray\u00fcz\u00fcnden function detay\u0131nda, &#8216;Configuration&#8217; sekmesi \u00fczerinden &#8216;Permissions&#8217; men\u00fcs\u00fcne gelerek tan\u0131mlanm\u0131\u015f olan role eri\u015febilir ve bu rol \u00fczerinde S3 servislerine gerekli eri\u015fim izinlerini verebilirsiniz.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-14.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-14.png\" alt=\".NET Uygulamalar\u0131 \u0130\u00e7in Detayl\u0131 AWS Credentials Konfig\u00fcrasyonu\" width=\"746\" height=\"199\" class=\"aligncenter size-full wp-image-26579\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-14.png 746w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-14-300x80.png 300w\" sizes=\"auto, (max-width: 746px) 100vw, 746px\" \/><\/a><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-4.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-4.gif\" alt=\".NET Uygulamalar\u0131 \u0130\u00e7in Detayl\u0131 AWS Credentials Konfig\u00fcrasyonu\" width=\"800\" height=\"402\" class=\"aligncenter size-full wp-image-26581\" \/><\/a>Gerekli izinleri verdikten sonra tekrardan test ederseniz e\u011fer function taraf\u0131ndan S3 servislerine rahatl\u0131kla eri\u015fim ger\u00e7ekle\u015ftirilebildi\u011fini ve ba\u015far\u0131yla sonucun elde edildi\u011fini g\u00f6zlemleyebilirsiniz.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-15.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-15.png\" alt=\".NET Uygulamalar\u0131 \u0130\u00e7in Detayl\u0131 AWS Credentials Konfig\u00fcrasyonu\" width=\"573\" height=\"291\" class=\"aligncenter size-full wp-image-26583\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-15.png 573w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2023\/09\/NET-Uygulamalari-Icin-Detayli-AWS-Credentials-Konfigurasyonu-15-300x152.png 300w\" sizes=\"auto, (max-width: 573px) 100vw, 573px\" \/><\/a>Buradan da anl\u0131yoruz ki, AWS altyap\u0131s\u0131nda bar\u0131nd\u0131r\u0131lan uygulamalar taraf\u0131ndan AWS servislerine eri\u015filebilmesi i\u00e7in gerekli rol ve politika tan\u0131mlar\u0131n\u0131n ger\u00e7ekle\u015ftirilmesi gerekirken, AWS altyap\u0131s\u0131n\u0131n d\u0131\u015f\u0131nda bulunan uygulamalar taraf\u0131ndan da yetkilendirilmi\u015f access key ve secret key de\u011ferlerine ihtiya\u00e7 s\u00f6z konusudur.<\/p>\n<p>B\u00f6ylece .NET uygulamalar\u0131nda AWS Credentials konfig\u00fcrasyonlar\u0131 hakk\u0131nda ayr\u0131nt\u0131l\u0131 bir incelemede bulunmu\u015f olduk ve ayr\u0131ca access ve secret key&#8217;ler ile birlikte politikalarla rollerin ne manaya geldi\u011fini, hangi durumlara istinaden davran\u0131\u015fsal farklar\u0131n s\u00f6z konusu oldu\u011funu de\u011ferlendirmi\u015f olduk.<\/p>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<p>Not : \u00d6rnek \u00e7al\u0131\u015fmaya a\u015fa\u011f\u0131daki github adresinden eri\u015febilirsiniz.<br \/>\n<a href=\"https:\/\/github.com\/gncyyldz\/AWS_Credentials_Configurations_Example\" rel=\"noopener\" target=\"_blank\">https:\/\/github.com\/gncyyldz\/AWS_Credentials_Configurations_Example<\/a><\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, Depolama, bilgi i\u015flem ve veritabanlar\u0131 gibi AWS servislerine eri\u015fim maksatl\u0131 authentication yapabilmek i\u00e7in kulland\u0131\u011f\u0131m\u0131z ve AWS&#8217;nin g\u00fcvenlik modelinin temel bir par\u00e7as\u0131 olan AWS Credentials, korumal\u0131 hizmetlere eri\u015fim i\u00e7in geli\u015ftiricilerin .NET uygulamalar\u0131n\u0131\/ortamlar\u0131n\u0131 gerekli kimlik&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":26585,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4730],"tags":[4691,4731,4734,4694],"class_list":["post-26553","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aws","tag-amazon-s3","tag-aws","tag-aws-iam","tag-aws-local-storage"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/26553","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=26553"}],"version-history":[{"count":8,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/26553\/revisions"}],"predecessor-version":[{"id":26584,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/26553\/revisions\/26584"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/26585"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=26553"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=26553"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=26553"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}