Lambdaで実行するために必要なIAMの設定が分からない...。CLIを使ってLambda用実行環境をアップロードするために必要なIAMの設定方法について解説します。現在私は、SEOライティングに役立つ自動化プログラムをPythonで開発中です。本記事はそのプログラム作成にあたり、以下の機能実装に必要であった設定手順の1つ「IAMユーザーとロールの作成方法」を紹介します。ChromeなどのリソースをDockerでパッケージングした実行環境をLambdaで利用する上記したプログラム開発は以下の記事で解説しています。この記事では、以下について解説します。...この記事を書いている私は、プログラミング未経験から1年間Pythonを独学し、いくつものプログラムを作成してきました。前までAWSにもほとんど触れたことがありませんでした。今の時代、初心者でも独学でプログラム作成に必要な力をつけることができますよ。本記事では、独学を始めたばかりのプログラミング初心者...この記事では、そんな私が初心者目線でつまづきやすい点や注意点を優しく解説していきます。Lambdaの利用に必要なIAMロール作成方法IAMロールの作成手順DockerイメージをLambda関数で利用するIAMロールの権限IAMユーザーとIAMロールの違いまずはIAMの概要を理解して、IAMユーザーとIAMロールを作ってみましょう。Management(以下、IAM)は、AWSリソースの認証に関わる設定を制御し、ユーザーや役割ごとに権限を管理することができます。AWSを始めたばかりの方は、まずIAMについてよく理解しましょう。アクセス権限を管理するIAMは、セキュリティ観点でAWSの最重要項目だからです。理解しないままIAMを利用した場合、あなたのアカウントが乗っ取られたりや不正利用にあうリスクがあります。無料利用枠でAWSを使い始めたばかりの方は要注意です。トラハック恐ろしい...!IAMについて知っておこう。IAMユーザーはヒトやサーバーに権限を付与するIAMユーザーはヒトやAWS以外のサーバーに対して権限を付与します。AWSを使い始めた方は、最初のIAMユーザーを作成する必要があります。先ほど「よく知らないままIAMを使うな」とお伝えしましたが、この記事を読んで概要を理解して、最初のIAMユーザーを作成することを強く推奨します。AWSのアカウント作成時に発行されたルートアカウントは全てのAWSリソースへのアクセス権限を持っており、漏洩した場合のリスクが大きいからです。ルートアカウントは通常利用しないことがベストプラクティスとされます。最初に作成したIAMユーザーでAWSコンソールへログインするようにしましょう。IAMユーザー作成時に発行されるアクセスキーは絶対に人に教えないでください。IAMロールはEC2やLambdaなどAWSリソースに権限を付与するIAMロールはEC2やLambdaといったAWSリソースのアクセス権限を管理します。AWSは何かしらの機能に操作を任せることがあります。その場合に、機能に対して権限を設定しておくことでAWSリソースに対して不意の変更が加えられないようにします。以下のようにアクセス権限を設定します。LambdaAWSリソース:S3バケットロール:読み取り権限IAMロールはIAMユーザーと違って「アクセスキーの管理が不要」という点は大きなメリットです。漏洩リスクがゼロになりますからね。最終的に、IAMロールの権限を実行する主体は「ヒトではなく機能」と覚えておけばOKです。最初のIAMユーザー作成方法と推奨権限それでは最初のIAMユーザーを作成してみましょう。最初のIAMユーザーは、幅広い権限を付与しておいて良いです。AWSコンソールから色々な機能をいじれた方が良いですし、再設定は面倒ですからね。再度警告ですが、アクセスキーは絶対に漏らさないでください。AWSコンソールにログインして、サービスから[IAM]を選択してください。左ペインから[ユーザー]を選択して、[ユーザーの作成]を選択します。マネジメントコンソールへのアクセス]:コンソールにログインして通常利用するのでチェックを入れる[コンソールのパスワード]:自動生成(次回サインイン時に変更するので)[パスワードのリセットが必要]:次回サインイン時に、自動生成されたパスワードから任意のパスワードに変更します。他人との共有ユーザーならばチェックは必須です。グループを作成します。アクセス許可の設定は、権限設定済みのグループにユーザーを追加して、グループの権限をユーザーの権限とする方式が楽だからです。[グループの作成]を選択します。今回は、記事冒頭で紹介したプログラムを構築するのに必要な権限を付与します。サーバーレスアーキテクチャに必要な権限AWSLambdaFullAccessIAMFullAccessAmazonS3FullAccessAmazonDynamoDBFullAccessAmazonAPIGatewayAdministratorIAMUserChangePassword※初回サインイン時にPW変更をするために必ず必要なポリシーです!作成したグループにチェックが入っていることを確認して次に進みます。[タグの追加(オプション)]は不要なので飛ばしてください。最後に、設定を確認して完了です。.csvファイルをダウンロードしておきます。このファイルにアクセスキーの情報が記載されているので、ローカル環境の他人に見られない場所に保管しておいてください。初回サインインをします。先ほどダウンロードしたcsvファイルに記載されたアカウント情報でサインインしてください。パスワードの変更を求められるので任意のパスワードに変更します。CLIで利用できるようにしましょう。Dockerで作成したパッケージのS3バケットへのアップロードと、Lambda関数の作成をコマンドラインから実行するために必要だからです。(Macの場合)ローカル環境のターミナルを開きます。CLIをインストールします。aws-cliセットアップコマンドを実行します。CLIのセットアップは完了です。Lambdaで利用するには、IAMロールが必要です。IAMロールの作成手順IAMのページから[ロール]を選択し、[ロールの作成]をクリックします。[Lambda]を選択します。[次のステップ:アクセス権限]をクリックして、IAMロールに与える権限の設定に移ります。DockerイメージをLambda関数で利用するIAMロールの権限ここで一旦解説。Lambda関数をスクレイピング用リソースをパッケージングしたDockerイメージで実行するには、Lambdaの実行権限とS3の読み取り権限を付与しておけば良いです。それでは、IAMロール作成手順の続きです。[Attachアクセス権限ポリシー]の検索窓に”Lambda”と入力し、[AWSLambdaExecute]を選択します。与えられる権限は以下の通りです。Log(AWSリソース全般のログ監視サービス)へのフルアクセス[アクセス権限の境界の設定]はデフォルトのまま設定不要です。最後にロール名を入力し、設定内容を確認して[ロールの作成]をクリックします。IAMロール一覧から作成したロールをクリックしてください。概要ページで[ロールARN]はLambda関数を作成するためのコマンドで引数[-role]に指定する値となります。300以上でIAMの設定方法の解説は終了です。リモートOKなスタートアップでフロントエンド|搾取されないエンジニアを増やすために、キャリア論や転職を成功させる方法、勉強方法について発信しています。