

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AD FS クレームルールと SAML 設定
<a name="adfs-claim-rule-saml"></a>

AWS マネージドサービス (AMS) の ActiveDirectory フェデレーションサービス (AD FS) クレームルールと SAML 設定 AWS Managed Services 

AD FS をインストールして設定する方法のstep-by-stepについては、[「Windows Active Directory、ADFS、および SAML 2.0 を使用した AWS へのフェデレーションの有効化](https://aws.amazon.com/blogs/security/enabling-federation-to-aws-using-windows-active-directory-adfs-and-saml-2-0/)」を参照してください。

## ADFS クレームルールの設定
<a name="cust-have-adfs"></a>

ADFS 実装が既にある場合は、以下を設定します。
+ 信頼する相手の信頼
+ クレームルール 

証明書利用者の信頼とクレームのルールステップは、[Windows Active Directory、AD FS、および SAML 2.0 ブログを使用して AWS へのフェデレーションを有効にするから実行します。](https://aws.amazon.com/blogs/security/enabling-federation-to-aws-using-windows-active-directory-adfs-and-saml-2-0/)
+ クレームルール:
  + **Nameid**: ブログ投稿ごとの設定
  + **RoleSessionName**: 次のように設定します
    + **クレームルール名**: **RoleSessionName**
    + **属性ストア**: **Active Directory**
    + **LDAP 属性**: **SAM-Account-Name**
    + **送信クレームタイプ**: **https://aws.amazon.com/SAML/Attributes/RoleSessionName**
    + **AD グループの取得**: [ブログ投稿](https://aws.amazon.com/blogs/security/enabling-federation-to-aws-using-windows-active-directory-adfs-and-saml-2-0/)ごとの設定
    + **ロールクレーム**: 次のように を設定します。

      ```
      c:[Type == "http://temp/variable", Value =~ "(?i)^AWS-([^d]{12})-"]
      ```

      ```
      => issue(Type = "https://aws.amazon.com/SAML/Attributes/Role", Value = RegExReplace(c.Value, "AWS-([^d]{12})-", "arn:aws:iam::$1:saml-provider/customer-readonly-saml,arn:aws:iam::$1:role/"));    
      ```

## ウェブコンソール
<a name="adfs-web-console"></a>

[{{ADFS-FQDN]}} を ADFS 実装の FQDN に置き換えることで、AWS ウェブコンソールにアクセスできます。

https://{{[ADFS-FQDN]}}/adfs/ls/IdpInitiatedSignOn.aspx

IT 部門は、グループポリシーを介して上記のリンクをユーザー母集団にデプロイできます。

## SAML による API および CLI アクセス
<a name="api-cli-web-access"></a>

SAML を使用して API および CLI アクセスを設定する方法。

Python パッケージは、以下のブログ記事から入手できます。
+ NTLM: [ SAML 2.0 と AD FS を使用してフェデレーティッド API と CLI アクセスを実装する方法](https://aws.amazon.com/blogs/security/how-to-implement-federated-api-and-cli-access-using-saml-2-0-and-ad-fs/)
+ フォーム: [ SAML 2.0 を使用してフェデレーティッド API/CLI アクセスの一般的なソリューションを実装する方法](https://aws.amazon.com/blogs/security/how-to-implement-a-general-solution-for-federated-apicli-access-using-saml-2-0/)
+ PowerShell: [ Windows PowerShell を使用して AWS へのフェデレーティッド API アクセスをセットアップする方法](https://aws.amazon.com/blogs/security/how-to-set-up-federated-api-access-to-aws-by-using-windows-powershell/)

### スクリプト設定
<a name="script-config"></a>

1. Notepad\+\+ を使用して、デフォルトのリージョンを正しいリージョンに変更する

1. Notepad\+\+ を使用して、テスト環境と開発環境の SSL 検証を無効にする

1. Notepad\+\+ を使用して idpentryurl を設定する

   `https://[ADFS-FDQN]/adfs/ls/IdpInitiatedSignOn.aspx?loginToRp=urn:amazon:webservices`

### Windows 設定
<a name="win-rule-claim-config"></a>

以下に、Python パッケージの手順を示します。生成された認証情報は 1 時間有効です。

1. [Python をダウンロードしてインストールする (2.7.11)](https://www.python.org/downloads/)

1. [AWS CLI ツールをダウンロードしてインストールする](https://aws.amazon.com/cli/)

1. AMS CLI をインストールします。

   1. Cloud Service Delivery Manager (CSDM) が提供する AMS 頒布可能ファイルをダウンロードして解凍します。

      いくつかのディレクトリとファイルが利用可能になりました。

   1. オペレーティングシステムに応じて、 **Managed Cloud Distributables -> CLI -> Windows** または **Managed Cloud Distributables -> CLI -> Linux / MacOS** ディレクトリを開きます。

      **Windows** の場合は、適切なインストーラを実行します (この方法は Windows 32 または 64 ビットシステムでのみ機能します）。
      + 32 ビット: ManagedCloudAPI\_x86.msi
      + 64 ビット: ManagedCloudAPI\_x64.msi

      **Mac/Linux** の場合は、**MC\_CLI.sh** という名前のファイルを実行します。これを行うには、次のコマンドを実行します: `sh MC_CLI.sh`。**amscm** および **amsskms** ディレクトリとその内容は、**MC\_CLI.sh** ファイルと同じディレクトリにある必要があります。

   1. 企業の認証情報を AWS とのフェデレーション (AMS デフォルト設定) 経由で使用する場合は、フェデレーションサービスにアクセスできる認証情報管理ツールをインストールする必要があります。例えば、この AWS セキュリティブログ [ How to Implement Federated API and CLI Access Using SAML 2.0 and AD FS](https://blogs.aws.amazon.com/security/post/Tx1LDN0UBGJJ26Q/How-to-Implement-Federated-API-and-CLI-Access-Using-SAML-2-0-and-AD-FS) を使用して、認証情報管理ツールの設定に役立てることができます。

   1. インストール後、 `aws amscm help`と `aws amsskms help` を実行してコマンドとオプションを表示します。

1. 必要な SAML スクリプトをダウンロードする

   c:\\aws\\scripts にダウンロードする

1. [PIP のダウンロード](https://bootstrap.pypa.io/get-pip.py)

   c:\\aws\\downloads にダウンロードする

1. PowerShell を使用して PIP をインストールする

   <pythondir>.\\python.exe c:\\aws\\downloads\\get-pip.py

1. PowerShell を使用して boto モジュールをインストールする

   <pythondir\\scripts>pip install boto

1. PowerShell を使用してリクエストモジュールをインストールする

   <pythondir\\scripts>pip インストールリクエスト

1. PowerShell を使用してリクエストセキュリティモジュールをインストールする

   <pythondir\\scripts>pip インストールリクエスト〔セキュリティ]

1. PowerShell を使用して beautifulsoup モジュールをインストールする

   <pythondir\\scripts>pip install beautifulsoup4

1. PowerShell を使用して、ユーザープロファイルに .aws という名前のフォルダを作成します (%userprofile%\\.aws)。

   mkdir .aws

1. PowerShell を使用して、.aws フォルダに認証情報ファイルを作成します。

   New-Item 認証情報 - タイプのファイル –force

   認証情報ファイルにはファイル拡張子を付けることはできません

   ファイル名はすべて小文字で、名前認証情報が必要です

1. メモ帳を使用して認証情報ファイルを開き、正しいリージョンを指定して次のデータに貼り付けます。

   ```
   [default]
   output = json
   region = us-east-1
   aws_access_key_id = 
   aws_secret_access_key =
   ```

1. PowerShell を使用した SAML スクリプトとログオン

   <pythondir>.\\python.exe c:\\aws\\scripts\\samlapi.py

   ユーザー名: [USERNAME]@upn

   引き受けるロールを選択する

### Linux 設定
<a name="linux-rule-claim-config"></a>

生成された認証情報は 1 時間有効です。

1. WinSCP を使用して SAML スクリプトを転送する

1. WinSCP を使用してルート CA 証明書を転送する (テストと開発には無視)

1. 信頼できるルート証明書に ROOT CA を追加する (テストと開発には無視)

   $ openssl x509 -inform der -in [certname].cer -out certificate.pem (テストと開発では無視)

   certificate.pem の内容を /etc/ssl/certs/ca-bundle.crt ファイルの末尾に追加する ((テスト開発では無視)

1. home/ec2-user 5 に .aws フォルダを作成する

   ```
   [default]
   output = json
   region = us-east-1
   aws_access_key_id = 
   aws_secret_access_key =
   ```

1. WinSCP を使用して認証情報ファイルを .aws フォルダに転送する

1. boto モジュールをインストールする

   $ sudo pip install boto

1. リクエストモジュールをインストールする

   $ sudo pip インストールリクエスト

1. beautifulsoup モジュールをインストールする

   $ sudo pip install beautifulsoup4

1. スクリプトを home/ec2-user にコピーする

   必要なアクセス許可を設定する

   スクリプトを実行します: samlapi.py