AWSのPaaSがIAMロールをサポートする。アプリケーションからのAWSサービス呼び出し時の操作が容易になる。
米Amazon Web Services(AWS)は4月17日、PaaSの「AWS Elastic Beanstalk」で新たにIAM(Identity and Access Management)ロールをサポートしたと発表した。自分のアプリケーションからAWSサービスへのセキュアなアクセスの確立が容易になるとしている。
IAMロールは長期間有効なアクセスキーを共有しなくても、定義済みのアクセス許可を使用して信頼されたエンティティにアクセスを委譲できる機能。これを使ってAmazon EC2やAWS Elastic BeanstalkなどのAWSサービスにアクセスを委譲できる。
Elastic Beanstalkの管理コンソールとebコマンドラインには、IAMロールと関連するインスタンスのプロファイルをプロビジョニングできる機能が加わり、それを自分の環境に割り当てられるようになった。既存のロールを使って環境全体で共有することも可能だ。
これまでは、アプリケーションからAWSのサービスAPI(DynamoDBやCloudWatchなど)を呼び出す場合、Elastic Beanstalkの環境変数を使ってAWSのアクセス鍵と秘密鍵をアプリケーションに受け渡す方法が一般的だった。
IAMロールでは、AWSの一時的なクレデンシャル(信用情報)が自分の環境内のEC2インスタンスで安全にプロビジョニングされる。このクレデンシャルをAWS SDKで利用するには、クライアント側で設定を行う必要があるが、それ以外についてはAWS SDK側が自動的に処理するという。
この機能は同日から提供が開始されている。
// Initialize the client. // Notice I didn't have to pass any credentials AmazonCloudWatchClient client = new AmazonCloudWatchClient(); // Record the metric data where numOfUsers is tracked in your application MetricDatum dataPoint = new MetricDatum() .withDimensions(new Dimension() .withName("Environment") .withValue("MyProductionEnvironment")) .withMetricName("Users") .withValue(numOfUsers); // Create the request to CloudWatch and define a namespace for my application PutMetricDataRequest request = new PutMetricDataRequest() .withNamespace("myapp/prod") .withMetricData(dataPoint); // Put the metrics in CloudWatch client.putMetricData(request);
Copyright © ITmedia, Inc. All Rights Reserved.