« 「デプロイ&プロビジョニング月間」資料公開のお知らせ | メイン | AWS初心者向けWebinar AWSでのコスト削減オプションの資料公開 »

AWS Tools for Windows PowerShellでフェデレーションによるユーザーを新規サポート

バージョン3.1.31.0から、AWS Tools for Windows PowerShellでSecurity Assertion Markup Language (SAML)をつかってAWSサービスにアクセスするためにActive Directory Federation Services (AD FS)によるユーザーアカウントのフェデレーションのサポートを開始しました。

以前のバージョンでは、AWSサービスを呼び出すすべてのコマンドレットはコマンドレットパラメータまたはAWS SDK for .NETとAWS Toolkit for Visual Studioとの間で共有されるクレデンシャルプロファイルに保存されるデータからのAWSのアクセスキーとシークレットキーを指定する必要がありました。ユーザーのグループを管理するためにはそれぞれのユーザーアカウントに個別のアクセスキーとシークレットキーを生成するためAWS Identity and Access Management (IAM)ユーザーインスタンスを作成する必要がありました。

フェデレーションによるアクセスのサポートとは、Active Directoryのディレクトリをつかった認証が可能になるという意味で、一時クレデンシャルが自動的にユーザーに付与されます。一時クレデンシャルは、一時間有効で、AWSサービスを呼び出すときにつかわれます。一時クレデンシャルの管理はこのツールによっておこないます。ドメイン参加のユーザーアカウントでは、コマンドレットが呼び出されたけれどもクレデンシャルが期限切れになったときに、ユーザーは自動的に再認証されて新規にクレデンシャルが付与されます。(ドメイン不参加のアカウントでは、ユーザーは再認証の前にクレデンシャルを入力するよう表示されます)

このツールは、Set-AWSSamlEndpointSet-AWSSamlRoleProfileの2つのあたらしいコマンドレットによるアクセスフェデレーションの設定をサポートします:

# first configure the endpoint that one or more role profiles will reference by name
$endpoint = "https://adfs.example.com/adfs/ls/IdpInitiatedSignOn.aspx?loginToRp=urn:amazon:webservices"
Set-AWSSamlEndpoint -Endpoint $endpoint -StoreAs "endpointname"

# if the user can assume more than one role, this will prompt the user to select a role
Set-AWSSamlRoleProfile -EndpointName "endpointname" -StoreAs "profilename"

# if the principal and role ARN data of a role is known, it can be specified directly
$params = @{
 "PrincipalARN"="arn:aws:iam::012345678912:saml-provider/ADFS"
 "RoleARN"="arn:aws:iam::012345678912:role/ADFS-Dev"
}
Set-AWSSamlRoleProfile -EndpointName "endpointname" -StoreAs "ADFS-Dev" @params

# if the user can assume multiple roles, this creates one profile per role using the role name for the profile name
Set-AWSSamlRoleProfile -EndpointName "endpointname" -StoreAllRoles

 ロールプロファイルはユーザーが認証されたとみなされるロールのための一時クレデンシャルを取得するときに使用されます。ロールプロファイルを選択した後にユーザーを認証する必要があるとき、アクセスするHTTPSエンドポイントを取得するためにSet-AWSSamlEndpointによって構成されたデータが使用されます。認証ははじめにAWSクレデンシャルを必要とするコマンドレットを実行したときに発生します。こちらの例ではドメイン参加のユーザーアカウントが使用されると仮定しています。ユーザーが認証のためにネットワーククレデンシャルを提供する必要がある場合は、クレデンシャルが -NetworkCredential パラメータにより渡されます。デフォルトでは、認証はKerberosによっておこなわれますが、これはSet-AWSSamlEndpoint-AuthenticationTypeパラメータに渡すことで上書きできます。(現在サポートされているパラメータの値はKerberos、NTLM、ダイジェスト、ベーシックおよびネゴシエイトです)

ロールプロファイルが構成された後、それをAWSクレデンシャルプロファイルと同じやり方で使用することができます。Set-AWSCredentialsまたはそれぞれのサービスのコマンドレットの -ProfileNameパラメータにプロファイル名を渡すだけです。これですべてです!

フェデレーションによるアクセスを新規にサポートしたことにより、チームメンバーにIAMユーザーアカウントを作成する負担が軽減されます。現在のところ、このツールはAD FSとSAMLによるフェデレーションされたユーザーをサポートしています。SAMLをサポートするほかのシステムによるフェデレーションを使用したい場合は、コメントでお知らせください。この機能に関するより詳細な情報と、どのようにしてSAMLベースの認証が動作するのかについての例は、AWS Security blogのこの記事を参照ください。

 (翻訳は渡邉(@gentaw0)が担当しました。原文はNew Support for Federated Users in the AWS Tools for Windows PowerShell

 

 

 

コメント

Twitter, Facebook

このブログの最新情報はTwitterFacebookでもお知らせしています。お気軽にフォローください。

2018年4 月

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30