

# AWS Identity and Access Management で CloudFormation アクセスを制御する
<a name="control-access-with-iam"></a>

AWS Identity and Access Management (IAM) を使えば、IAM ユーザーを作成して、AWS アカウント の特定のリソースへの、各ユーザーのアクセスを制御することができます。IAM を使用すると、スタックテンプレートの表示、スタックの作成、スタックの削除など、ユーザーが CloudFormation で実行できるアクションを制御できます。

CloudFormation の特定のアクションに加えて、各ユーザーが利用できる AWS サービスおよびリソースを管理できます。この方法で、ユーザーが CloudFormation の使用時にアクセスできるリソースを管理できます。たとえば、Amazon EC2 インスタンスを作成できるユーザー、データベースインスタンスを終了できるユーザ、または VPC を更新できるユーザを指定できます。CloudFormation を使用してそれらのアクションを実行するときは、いつでも同じアクセス許可が適用されます。

CloudFormation にアクセスできるユーザーを制御するときは、次のセクションの情報を使用します。また、テンプレートでの IAM リソースの作成を承認する方法、EC2 インスタンスで実行中のアプリケーションに必要なアクセス許可を付与する方法、AWS 環境のセキュリティ強化のために一時的なセキュリティ認証情報を使用する方法についても説明します。

## CloudFormation の IAM アイデンティティベースのポリシーの定義
<a name="iam-id-based-policies"></a>

CloudFormation へのアクセスを許可するには、必要な API アクションを呼び出すためのアクセス許可を、IAM アイデンティティ (ユーザーやロールなど) に付与する IAM ポリシーを作成し、これを割り当てる必要があります。

IAM アイデンティティベースポリシーでは、許可または拒否するアクションとリソース、またアクションを許可または拒否する条件を指定できます。CloudFormation は、特定のアクション、リソース、条件キーをサポートしています。

IAM を初めて使用する場合は、まず IAM JSON ポリシーの要素を理解します。詳細については、「*IAM ユーザーガイド*」の「[IAM JSON ポリシー要素のリファレンス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)」を参照してください。IAM ポリシーの作成方法については、IAM ドキュメントの[「はじめてのカスタマー管理ポリシーの作成とアタッチ」](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_managed-policies.html)のチュートリアルを参照してください。

**Topics**
+ [CloudFormation のポリシーアクション](#using-iam-actions)
+ [CloudFormation のコンソール固有のアクション](#console-specific-actions)
+ [CloudFormation のポリシーリソース](#resource-level-permissions)
+ [CloudFormation のポリシー条件キー](#using-iam-conditions)

### CloudFormation のポリシーアクション
<a name="using-iam-actions"></a>

IAM ポリシーステートメントの `Action` 要素では、CloudFormation で提供されている API アクションを指定できます。アクション名には、接頭辞として小文字の文字列 `cloudformation:` を含める必要があります。例えば、`cloudformation:CreateStack`、`cloudformation:CreateChangeSet`、および `cloudformation:UpdateStack` のようになります。

単一のステートメントで複数のアクションを指定するには、次のようにカンマで区切ります。

```
"Action": [ "cloudformation:{{action1}}", "cloudformation:{{action2}}" ]
```

ワイルドカードを使用して複数のアクションを指定することもできます。例えば、`Get` という単語で始まるアクション名すべてを次のように指定できます。

```
"Action": "cloudformation:Get*"
```

`cloudformation` サービスプレフィックスに関連付けられたアクションの一覧については、「*Service Authorization Reference*」の「[Actions, resources, and condition keys for CloudFormation](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html)」および「[Actions, resources, and condition keys for AWS クラウドコントロール API](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudcontrolapi.html)」を参照してください。

#### 例
<a name="using-iam-actions-examples"></a>

以下は、CloudFormation スタックを表示するためのアクセス許可を付与するアクセス許可ポリシーの例です。

**Example 1: スタックを表示するためのアクセス許可を付与するポリシーの例**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[{
        "Effect":"Allow",
        "Action":[
            "cloudformation:DescribeStacks",
            "cloudformation:DescribeStackEvents",
            "cloudformation:DescribeStackResource",
            "cloudformation:DescribeStackResources"
        ],
        "Resource":"*"
    }]
}
```

スタックを作成または削除するユーザーには、スタックテンプレートに基づく追加のアクセス許可が必要です。例えば、テンプレートに Amazon SQS キューが記述されている場合、次のポリシー例に示すように、ユーザーは CloudFormation アクションと Amazon SQS アクションの両方に対するアクセス許可を持っている必要があります。

**Example 2: スタックアクションの作成と表示、およびすべての Amazon SQS アクションを付与するサンプルポリシー**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[{
        "Effect":"Allow",
        "Action":[
            "sqs:*",
            "cloudformation:CreateStack",
            "cloudformation:DescribeStacks",
            "cloudformation:DescribeStackEvents",
            "cloudformation:DescribeStackResources",
            "cloudformation:GetTemplate",
            "cloudformation:ValidateTemplate"  
        ],
        "Resource":"*"
    }]
}
```

### CloudFormation のコンソール固有のアクション
<a name="console-specific-actions"></a>

CloudFormation のコンソールを使用するユーザーには、AWS Command Line Interface または CloudFormation API に必要なアクセス許可に加えて、追加の許可が必要です。これらの追加のアクセス許可は、Amazon S3 バケットへのテンプレートのアップロードや、AWS 固有のパラメータタイプのドロップダウンリストなど、コンソールに固有の機能をサポートしています。

次のすべてのアクションで、すべてのリソースに対するアクセス許可を付与します。その際、特定のスタックまたはバケットに制限しないようにしてください。

次のアクションは、CloudFormation コンソールでのみ使用されるため、API リファレンスには記載されていません。このアクションにより、ユーザーは Amazon S3 バケットにテンプレートをアップロードできるようになります。
+ `cloudformation:CreateUploadBucket`

ユーザーがテンプレートをアップロードするときは、次の Amazon S3 のアクセス許可も必要になります。
+ `s3:PutObject`
+ `s3:ListBucket`
+ `s3:GetObject`
+ `s3:CreateBucket`

AWS 固有のパラメータタイプを持つテンプレートで、パラメータ ドロップダウン リストの値を確認するには、ユーザーは、対応する記述 API コールを行うためのアクセス許可が必要です。例えば、これらのパラメータタイプをテンプレートで使用する場合は次のアクセス許可が必要です。
+  `ec2:DescribeKeyPairs` – `AWS::EC2::KeyPair::KeyName` パラメータタイプに必要。
+ `ec2:DescribeSecurityGroups` – `AWS::EC2::SecurityGroup::Id` パラメータタイプに必要。
+ `ec2:DescribeSubnets` – `AWS::EC2::Subnet::Id` パラメータタイプに必要。
+ `ec2:DescribeVpcs` – `AWS::EC2::VPC::Id` パラメータタイプに必要。

AWS 固有のパラメータタイプに関する詳細は、「[CloudFormation が提供するパラメータタイプを使用して、実行時に既存のリソースを指定する](cloudformation-supplied-parameter-types.md)」を参照してください。

### CloudFormation のポリシーリソース
<a name="resource-level-permissions"></a>

IAM ポリシーステートメントで、`Resource` 要素は、ステートメントがカバーするオブジェクトを指定します。CloudFormation では、各 IAM ポリシーステートメントは、ユーザーがAmazon リソースネーム（ARN）を使用して指定したリソースに適用されます。具体的 ARN 形式はリソースによって異なります。

CloudFormation リソースのタイプとその ARN のリストの一覧は、「*Service Authorization Reference*」の「[Resource types defined by CloudFormation](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html#awscloudformation-resources-for-iam-policies)」を参照してください。各リソースの ARN を使って指定できるアクションについては、「[Actions defined by CloudFormation](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html#awscloudformation-actions-as-permissions)」を参照してください。

次のポリシー例に示すように、特定のスタックのアクションを指定できます。ARN を指定するには、`{{placeholder text}}` をリソース固有の情報に置き換えます。

**Example 1: 指定したスタックに対するスタックアクションの削除と更新を拒否するサンプルポリシー**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "cloudformation:DeleteStack",
                "cloudformation:UpdateStack"
            ],
            "Resource": "arn:aws:cloudformation:{{us-east-1}}:{{111122223333}}:stack/{{MyProductionStack}}/*"
        }
    ]
}
```

上記のポリシーでは、スタック名の最後にワイルドカードを使用することで、フルスタック ID (`arn:aws:cloudformation:{{region}}:{{account-id}}:stack/{{MyProductionStack}}/{{abc9dbf0-43c2-11e3-a6e8-50fa526be49c}}` など) とスタック名 (`{{MyProductionStack}}` など) の両方に基づいて、スタックの削除と更新を拒否します。

変更セットの作成を `AWS::Serverless` トランスフォームに許可するには、次のポリシーに示すように、`arn:aws:cloudformation:{{region}}:aws:transform/Serverless-2016-10-31` リソースレベルのアクセス許可を含めます。

**Example 2: 指定した変換に対して変更セットの作成アクションを許可するポリシーの例**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateChangeSet"
            ],
            "Resource": "arn:aws:cloudformation:{{us-east-1}}:aws:transform/Serverless-2016-10-31"
        }
    ]
}
```

### CloudFormation のポリシー条件キー
<a name="using-iam-conditions"></a>

IAM ポリシーのステートメントでは、必要に応じて、ポリシーを有効にするタイミングを制御する条件を指定できます。たとえば、特定のテンプレート URL を指定したときにのみ がユーザーにスタックの作成を許可するように、ポリシーを定義できます。CloudFormation 固有の条件や AWS 全体に対する、ポリシーが有効でなくなるタイミングを指定する `DateLessThan` などの条件を定義できます。AWS 全体の条件のリストについては、「*IAM ユーザーガイド*」の「[IAM ポリシー要素のリファレンス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Condition)」を参照してください。

**注記**  
`aws:SourceIp` AWS 全体の条件を使用しないでください。CloudFormation はリクエストの送信元 IP アドレスではなく、独自の IP アドレスを使用してリソースをプロビジョニングします。例えば、スタックを作成する際に、CloudFormation は、Amazon EC2 インスタンスを起動したり Amazon S3 バケットを作成したりするために、`CreateStack` コールや **create-stack** コマンドを実行した IP アドレスではなく、その IP アドレスからリクエストを行います。

次のリストは、CloudFormation 固有の条件要件について説明しています。これらの条件は、ユーザーがスタックを作成または更新する場合にのみ適用されます。

`cloudformation:ChangeSetName`  
ポリシーに関連付ける CloudFormation 変更セットの名前。この条件を使用して、 ユーザーがどの変更セットを実行、または削除するかを制御します。

`cloudformation:ImportResourceTypes`  
ポリシーに関連付ける、`AWS::EC2::Instance` などのテンプレートリソースタイプ。この条件を使用して、 ユーザーがスタックにリソースをインポートするときに、操作できるリソースタイプを指定します。この条件は、ユーザーが `ResourcesToImport` パラメータで宣言したリソースタイプに対して確認されます。このパラメータは、現在のところ AWS CLI および API リクエストでのみサポートされています。このパラメータを使用する場合は、インポートオペレーション中にユーザーが制御するリソースタイプをすべて指定する必要があります。`ResourcesToImport` パラメータの詳細については、「*AWS CloudFormation API リファレンス*」の「[https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateChangeSet.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateChangeSet.html) アクション」を参照してください。  
可能な `ResourcesToImport` の一覧については、「[リソースタイプのサポート](resource-import-supported-resources.md)」を参照してください。  
3 つの部分からなるリソース命名規則を使用して、組織全体のすべてのリソースから個々のリソースタイプまで、ユーザーが操作できるリソースタイプを指定します。    
`{{organization}}::*`  
所定の組織のすべてのリソースタイプを指定します。  
`{{organization}}::{{{{service_name}}}}::*`  
所定の組織内で指定されたサービスのすべてのリソースタイプを指定します。  
`{{organization}}::{{{{service_name}}}}::{{resource_type}}`  
特定のリソースタイプを指定します。
例:    
`AWS::*`  
サポートされているすべての AWS リソースを指定します。  
`AWS::{{service_name}}::*`  
固有の AWS サービスでサポートされているすべてのリソースを指定します。  
`AWS::{{service_name}}::{{resource_type}}`  
`AWS::EC2::Instance` (すべての EC2 インスタンス) などの特定の AWS リソースタイプを指定します。

`cloudformation:ResourceTypes`  
ポリシーに関連付ける `AWS::EC2::Instance` などのテンプレートリソース。この条件を使用して、 ユーザーがスタックを作成または更新したときに、操作できるリソースタイプを指定します。この条件は、ユーザーが `ResourceTypes` パラメータで宣言したリソースタイプに対して確認されます。このパラメータは、現在のところ AWS CLI および API リクエストでのみサポートされています。このパラメーターを使用する場合、ユーザーはそのテンプレートにあるすべてのリソースタイプを指定する必要があります。`ResourceTypes` パラメータの詳細については、「*AWS CloudFormation API リファレンス*」の「[https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html) アクション」を参照してください。  
リソースタイプのリストについては、「[CloudFormation テンプレートリファレンスガイド](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/introduction.html)」を参照してください。  
3 つの部分からなるリソース命名規則を使用して、組織全体のすべてのリソースから個々のリソースタイプまで、ユーザーが操作できるリソースタイプを指定します。    
`{{organization}}::*`  
所定の組織のすべてのリソースタイプを指定します。  
`{{organization}}::{{{{service_name}}}}::*`  
所定の組織内で指定されたサービスのすべてのリソースタイプを指定します。  
`{{organization}}::{{{{service_name}}}}::{{resource_type}}`  
特定のリソースタイプを指定します。
例:    
`AWS::*`  
サポートされているすべての AWS リソースを指定します。  
`AWS::{{service_name}}::*`  
固有の AWS サービスでサポートされているすべてのリソースを指定します。  
`AWS::{{service_name}}::{{resource_type}}`  
`AWS::EC2::Instance` (すべての EC2 インスタンス) などの特定の AWS リソースタイプを指定します。  
`Alexa::ASK::*`  
Alexa スキルキットですべてのリソースタイプを指定します。  
`Alexa::ASK::Skill`  
個々の [Alexa::ASK::Skill](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/alexa-resource-ask-skill.html) リソースタイプを指定します。  
`Custom::*`  
すべてのカスタムリソースを指定します。  
詳細については、「[カスタムリソースを使用してカスタムプロビジョニングロジックを作成する](template-custom-resources.md)」を参照してください。  
`Custom::{{resource_type}}`  
特定のカスタムリソースタイプを指定します。  
詳細については、「[カスタムリソースを使用してカスタムプロビジョニングロジックを作成する](template-custom-resources.md)」を参照してください。

`cloudformation:RoleARN`  
ポリシーに関連付ける IAM サービスロールの Amazon リソースネーム (ARN)。この条件を使用して、 ユーザーがスタックまたは変更セットを操作するとき、どのサービスロールを使用できるかを制御します。

`cloudformation:StackPolicyUrl`  
ポリシーに関連付ける Amazon S3 スタックポリシーの URL。 ユーザーがスタックの作成または更新アクション時にスタックに関連付けることができるスタックポリシーを制御するには、この条件を使用します。スタックポリシーの詳細については、「[スタックのリソースが更新されないようにする](protect-stack-resources.md)」を参照してください。  
アップロードしたスタックポリシーを使用した場合にのみユーザーがスタックを作成または更新できるようにするには、それらのユーザーのために S3 バケットを読み取り専用に設定します。

`cloudformation:TemplateUrl`  
ポリシーに関連付ける Amazon S3 テンプレートの URL。この条件を使用して、スタックを作成または更新したときに ユーザーが使用できるテンプレートを指定します。  
アップロードしたテンプレートを使用した場合にのみユーザーがスタックを作成または更新できるようにするには、それらのユーザーのために S3 バケットを読み取り専用に設定します。
同じ名前の API パラメータには、次の CloudFormation 固有の条件が適用されます。  
+ `cloudformation:ChangeSetName`
+ `cloudformation:RoleARN`
+ `cloudformation:StackPolicyUrl`
+ `cloudformation:TemplateUrl`
例えば、`cloudformation:TemplateUrl` は、`CreateStack`、`UpdateStack`、および `CreateChangeSet` API の `TemplateUrl` パラメータにのみ適用されます。

アクセス制御に条件キーを使用する IAM ポリシーの例については、「[CloudFormation の IAM アイデンティティベースのポリシーの例](security_iam_id-based-policy-examples.md)」を参照してください。

## CloudFormation テンプレートでの IAM リソースの承認
<a name="using-iam-capabilities"></a>

スタックを作成する前に、CloudFormation によってテンプレートが検証されます。検証中、CloudFormation は作成する可能性のある IAM リソースについてテンプレートをチェックします。IAM リソース (フルアクセス権を持つユーザーなど) は、AWS アカウント の任意のリソースにアクセスして変更できます。したがって、拡大した権限で意図していないリソースを作成しないように、進める前に各 IAM に関連付けられた権限を確認することをお勧めします。実行されたことを確認するには、スタックを作成する前に、CloudFormation に指定された機能を付与して、テンプレートにそれらのリソースを含めることを承認する必要があります。

CloudFormation コンソール、AWS Command Line Interface (AWS CLI)、または API を使用して、CloudFormation テンプレートの機能を承認できます。
+ CloudFormation コンソールで、[スタックを作成] または [スタックを更新] ウィザードの [**スタックオプションの設定**] ページで [**I acknowledge that this template may create IAM resources (このテンプレートが IAM リソースを作成する可能性を認識しています)**] を選択します。
+ AWS CLI で、[https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html) および [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-stack.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-stack.html) コマンドを使用する場合は、`--capabilities` オプションに `CAPABILITY_IAM` または `CAPABILITY_NAMED_IAM` 値を指定します。テンプレートに IAM リソースがある場合、いずれかの機能を指定できます。テンプレートの IAM リソースにカスタム名がある場合、`CAPABILITY_NAMED_IAM` を指定する必要があります。
+ API で [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html) と [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStack.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStack.html) アクションを使用する際には、`Capabilities.member.1=CAPABILITY_IAM` または `Capabilities.member.1=CAPABILITY_NAMED_IAM` を指定します。テンプレートに IAM リソースがある場合、いずれかの機能を指定できます。テンプレートの IAM リソースにカスタム名がある場合、`CAPABILITY_NAMED_IAM` を指定する必要があります。

**重要**  
テンプレートにカスタム名の IAM リソースが含まれている場合、同じテンプレートを再利用する複数のスタックを作成しないでください。IAM リソースはアカウント内でグローバルに一意でなければなりません。同じテンプレートを使用して異なるリージョンで複数のスタックを作成する場合、それぞれのスタックは一意なリソースを持つのではなく、同じ IAM リソースを共有する可能性があります。スタック間でリソースを共有すると、回復不可能な意図しない結果をまねく可能性があります。たとえば、1 つのスタックの共有された IAM リソースを削除または更新すると、意図せずに他のスタックのリソースの変更することになります。

## Amazon EC2 インスタンスで実行されるアプリケーションの認証情報の管理
<a name="using-iam-manage-creds"></a>

Amazon EC2 インスタンスで実行されるアプリケーションで、Amazon S3 バケットや DynamoDB テーブルなどの AWS リソースにリクエストを送信する必要がある場合、そのアプリケーションでは AWS セキュリティ認証情報が必要になります。ただし、起動するすべてのインスタンスにおける長期的なセキュリティ認証情報を配信して埋め込むことは非常に難しく、潜在的なセキュリティリスクを伴います。IAM ユーザー認証情報のような長期認証情報を使用する代わりに、インスタンスが起動される際に Amazon EC2 インスタンスに関連付けられる IAM ロールを作成することをお勧めします。アプリケーションは Amazon EC2 インスタンスから一時的な認証情報を得ることができます。インスタンスに長期認証情報を埋め込む必要はありません。また、認証情報を管理しやすくするために、複数の Amazon EC2 インスタンスに対して 1 つのロールのみを指定できます。インスタンスごとに個別の認証情報を作成する必要はありません。

ロールでのインスタンスの起動方法を示すテンプレートスニペットについては、「[IAM ロールのテンプレートの例](quickref-iam.md#scenarios-iamroles)」を参照してください。

**注記**  
一時的なセキュリティ認証情報を使用するインスタンスにあるアプリケーションでは、CloudFormation アクションを呼び出すことができます。ただし、CloudFormation は他の多数の AWS サービスとやり取りするため、使用するすべてのサービスが一時的なセキュリティ認証情報をサポートすることを確認する必要があります。一時的なセキュリティ認証情報を受け入れるサービスのリストについては、*IAM ユーザーガイド*の「[IAM と連携する AWS サービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。

## 一時的なアクセス権の付与 (フェデレーションアクセス)
<a name="using-iam-grant-access"></a>

場合によっては、AWS アカウント に対して AWS 認証情報のない一時的なアクセス権をユーザーに付与する必要があります。一時的なアクセス権を付与する場合は、長期認証情報を作成して削除するのではなく、AWS Security Token Service (AWS STS) を使用します。たとえば、IAM ロールを使用できます。1 つの IAM ロールから、多くの一時的なセキュリティ認証情報 (アクセスキー、シークレットアクセスキー、およびセキュリティトークンを含む) をプログラムで作成し、配信することができます。これらの認証情報の有効期限は限られているため、期限が切れた後は AWS アカウント へのアクセスに使用することはできません。また、個々のユーザーに異なるレベルのアクセス許可を付与するために、複数の IAM ロールを作成することもできます。IAM ロールは、連合 ID やシングルサインオンのようなシナリオに対して有用です。

フェデレーティッドアイデンティティは、複数のシステムで使用できる固有のアイデンティティです。確立されたオンプレミスアイデンティティシステム (LDAP または Active Directory など) を使用している企業ユーザーの場合、そのオンプレミスアイデンティティシステムを使用してすべての認証を処理できます。ユーザーが認証された後で、適切な IAM ユーザーまたは IAM ロールから一時的なセキュリティ認証情報を提供します。例えば、管理者が AWS アカウントへの完全アクセス権を持ち、デベロッパーが CloudFormation スタックでの作業のみのアクセス許可を持つ、管理者ロールおよび開発者ロールを作成できます。管理者は、認証された後で、管理者ロールから一時的なセキュリティ認証情報を取得することが認可されます。一方で、開発者は開発者ロールからのみ一時的なセキュリティ認証情報を取得できます。

また、AWS マネジメントコンソール にフェデレーションユーザーアクセスを付与できます。ユーザーがオンプレミスアイデンティティシステムで認証された後で、AWS マネジメントコンソール への直接アクセス権を付与する一時的な URL をプログラムによって作成できます。ユーザーは既に認証されているため (シングルサインオン)、その一時的な URL を使用するときには AWS にサインインする必要がありません。また、この URL はユーザーの一時的なセキュリティ認証情報から作成されるため、この認証情報で利用できるアクセス許可によって、AWS マネジメントコンソール でユーザーに付与されるアクセス許可が決まります。

一時的なセキュリティ認証情報を生成するために複数のさまざまな AWS STS API を使用できます。使用する API の詳細については、「*IAM ユーザーガイド*」の「[AWS STS 認証情報を比較する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts-comparison.html)」を参照してください。

**重要**  
`GetFederationToken` API から生成された一時的なセキュリティ認証情報を使用する場合は、IAM で作業することはできません。IAM での作業が必要な場合、代わりにロールからの一時的なセキュリティ認証情報を使用します。

CloudFormation は他の多数の AWS サービスとインタラクションします。CloudFormation で一時的なセキュリティ認証情報を使用する場合は、使用するすべてのサービスが一時的なセキュリティ認証情報をサポートすることを確認してください。一時的なセキュリティ認証情報を受け入れるサービスのリストについては、*IAM ユーザーガイド*の「[IAM と連携する AWS サービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。

詳細については、「*IAM ユーザーガイド*」の次の関連リソースを参照してください。
+ [一時的な認証情報の一般的なシナリオ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html#sts-introduction)
+ [AWS コンソールへのカスタム ID ブローカーアクセスを有効にする](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html)