認証レスポンス用の SAML アサーションを設定する
組織内でユーザーの ID が確認されると、外部 ID プロバイダー (IdP) によって https://
の AWS SAML エンドポイントに認証レスポンスが送信されます。潜在的な region-code
.signin.aws.amazon.com/samlregion-code
の差し替えリストについては、「AWS Sign-In endpoints」( サインインエンドポイント) の [Region] (リージョン) 列を参照してください。このレスポンスは、HTTP POST Binding for SAML 2.0
IdP が AWS へのクレームを含むレスポンスを送信すると、多くの受信クレームは AWS コンテキストキーにマッピングされます。これらのコンテキストキーは Condition
要素を使用して IAM ポリシーにチェックインすることができます。使用可能なマッピングの一覧は、「SAML 属性の AWS 信頼ポリシーコンテキストキーへのマッピング」に掲載されています。
Subject
および NameID
例を以下に示します。マークされた値を独自の値に置き換えます。SubjectConfirmation
属性と SubjectConfirmationData
属性の両方が含まれる NotOnOrAfter
要素を持つ Recipient
要素が 1 つだけ必要です。これらの属性には、AWS エンドポイント https://
と一致する値が含まれます。実行可能な region-code
.signin.aws.amazon.com/samlregion-code
値のリストについては、「AWS サインインエンドポイント」の [Region] (リージョン) 列を参照します。AWS の値については、次の例に示すように https://signin.aws.amazon.com/saml
も使用できます。
NameID
要素は、永続的な値、一時的な値で構成することも、IdP ソリューションから提供される完全な URI で構成することもできます。永続的な値は、NameID
の値がセッション間のユーザーでも同じになることを意味します。値が一時的な場合、ユーザーの NameID
値はセッションごとに異なります。シングルサインオン操作では、次の識別子タイプをサポートします。
-
urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
-
urn:oasis:names:tc:SAML:2.0:nameid-format:transient
-
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
-
urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
-
urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName
-
urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName
-
urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos
-
urn:oasis:names:tc:SAML:2.0:nameid-format:entity
<Subject> <NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">
_cbb88bf52c2510eabe00c1642d4643f41430fe25e3
</NameID> <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> <SubjectConfirmationData NotOnOrAfter="2013-11-05T02:06:42.876Z
" Recipient="https://signin.aws.amazon.com/saml"/> </SubjectConfirmation> </Subject>
重要
saml:aud
コンテキストキーは SAML 受取人属性から取得します。この属性は、SAML バージョンの OIDC オーディエンスフィールドと言えるものだからです (例えば、accounts.google.com:aud
)。
PrincipalTag
SAML 属性
(オプション) Name
属性が https://aws.amazon.com/SAML/Attributes/PrincipalTag:
に設定された {TagKey}
Attribute
要素を使用できます。この要素を使用すると、SAML アサーションでセッションタグとして属性を渡すことができます。セッションタグの詳細については、「AWS STS でセッションタグを渡します」を参照してください。
属性をセッションタグとして渡すには、タグの値を指定する AttributeValue
要素を含めます。たとえば、タグのキーバリューのペア Project
= Marketing
と CostCenter
= 12345
を渡すには、次の属性を使用します。タグごとに個別の Attribute
要素を含めます。
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:Project"> <AttributeValue>Marketing</AttributeValue> </Attribute> <Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:CostCenter"> <AttributeValue>12345</AttributeValue> </Attribute>
上記のタグを推移的として設定するには、Attribute
属性を Name
に設定した別の https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys
要素を含めます。これは、セッションタグを推移的として設定するオプションの多値属性です。推移タグは、SAML セッションを使用して AWS で別のロールを引き受けるときに保持されます。これは、ロールの連鎖と呼ばれます。たとえば、Principal
タグ と CostCenter
タグの両方を推移的として設定するには、次の属性を使用してキーを指定します。
<Attribute Name="https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys"> <AttributeValue>Project</AttributeValue> <AttributeValue>CostCenter</AttributeValue> </Attribute>
Role
SAML 属性
Name
属性が https://aws.amazon.com/SAML/Attributes/Role
に設定された Attribute
要素を使用できます。この要素には、IdP によってユーザーがマッピングされている IAM SAML ID プロバイダーおよびロールおよびを一覧表示する AttributeValue
要素が 1 つ以上含まれます。IAM ロールと IAM ID プロバイダーは、AssumeRoleWithSAMLに渡される RoleArn
パラメーターと PrincipalArn
パラメーターと同じ形式でコンマ区切りの ARN のペアとして指定されます。この要素には、少なくとも 1 つのロールとプロバイダーのペア(AttributeValue
要素)を含める必要があり、複数のペアを含めることができます。要素に複数のペアを含める場合、ユーザーが WebSSO を使用して AWS Management Console にサインインすると、引き受けるロールを選択する画面が表示されます。
重要
Name
タグの Attribute
属性の値は大文字と小文字が区別されます。これは厳密に https://aws.amazon.com/SAML/Attributes/Role
に設定する必要があります。
<Attribute Name="https://aws.amazon.com/SAML/Attributes/Role"> <AttributeValue>arn:aws:iam::
account-number
:role/role-name1
,arn:aws:iam::account-number
:saml-provider/provider-name
</AttributeValue> <AttributeValue>arn:aws:iam::account-number
:role/role-name2
,arn:aws:iam::account-number
:saml-provider/provider-name
</AttributeValue> <AttributeValue>arn:aws:iam::account-number
:role/role-name3
,arn:aws:iam::account-number
:saml-provider/provider-name
</AttributeValue> </Attribute>
RoleSessionName
SAML 属性
Name
属性が https://aws.amazon.com/SAML/Attributes/RoleSessionName
に設定された Attribute
要素を使用できます。この要素には、ロールが引き継がれたときに発行される一時的な認証情報の識別子を提供する AttributeValue
要素が1つ含まれています。これを使用して、アプリケーションを使用しているユーザーに一時的な認証情報を関連付けることができます。この要素は、AWS Management Consoleでユーザー情報を表示するときに使用されます。AttributeValue
要素の値は 2~64 文字で、英数字、アンダースコア、および . , + = @ - (ハイフン).のみを含めることができます。スペースを含めることはできません。通常、この値はユーザー ID (johndoe
) またはメールアドレス (johndoe@example.com
) です。ユーザーの表示名 (John Doe
) のように、スペースを含む値とすることはできません。
重要
Name
タグの Attribute
属性の値は大文字と小文字が区別されます。これは厳密に https://aws.amazon.com/SAML/Attributes/RoleSessionName
に設定する必要があります。
<Attribute Name="https://aws.amazon.com/SAML/Attributes/RoleSessionName"> <AttributeValue>
user-id-name
</AttributeValue> </Attribute>
SessionDuration
SAML 属性
(オプション) Name
属性が https://aws.amazon.com/SAML/Attributes/SessionDuration"
に設定された Attribute
要素を使用できます。この要素には、ユーザーが新しい一時的な認証情報をリクエストする前に、ユーザーが AWS Management Console にアクセスできる時間を指定する 1 つの AttributeValue
要素が含まれます。値は、セッションの秒数を表す整数です。値の範囲は 900 秒 (15 分) から 43200 秒 (12 時間) です。この属性が存在しない場合は、認証情報は 1 時間有効です (DurationSeconds
API の AssumeRoleWithSAML
パラメータのデフォルト値)。
この属性を使用するには、AWS Management Console でコンソールのサインインウェブエンドポイントを通じて https://
へのシングルサインオンアクセスを提供する SAML プロバイダーを設定する必要があります。実行可能な region-code
.signin.aws.amazon.com/samlregion-code
値のリストについては、「AWS サインインエンドポイント」の [Region] (リージョン) 列を参照します。任意で次のURL https://signin.aws.amazon.com/static/saml
が使用できます。この属性が AWS Management Console にのみセッションを拡張することに注意してください。他の認証情報の存続期間を延長することはできません。ただし、AssumeRoleWithSAML
API コール中に存在する場合は、セッション期間を短縮するために使用できます。呼び出しによって返される認証情報のデフォルトの有効期間は 60 分です。
また、SessionNotOnOrAfter
属性も定義されている場合は、2つの属性の小さい方の値、SessionDuration
または SessionNotOnOrAfter
がコンソールセッションの最大期間を確立することにも注意してください。
コンソールセッションを拡張された期間有効にする場合、認証情報が侵害されるリスクが高まります。このリスクを軽減するには、IAM コンソールの [Role Summary] ページで、[Revoke Sessions] を選択して、どのロールのアクティブなコンソールセッションもすぐに無効にできます。詳細については、「IAM ロールの一時的なセキュリティ認証情報を取り消す」を参照してください。
重要
Name
タグの Attribute
属性の値は大文字と小文字が区別されます。これは厳密に https://aws.amazon.com/SAML/Attributes/SessionDuration
に設定する必要があります。
<Attribute Name="https://aws.amazon.com/SAML/Attributes/SessionDuration"> <AttributeValue>1800</AttributeValue> </Attribute>
SourceIdentity
SAML 属性
(オプション) Name
属性が https://aws.amazon.com/SAML/Attributes/SourceIdentity
に設定された Attribute
要素を使用できます。この要素には、1 つのIAM ロールを使用しているユーザーまたはアプリケーションの識別子を提供する AttributeValue
要素が含まれています。SAML セッションを使用して、ロールチェーンと呼ばれる AWS の別のロールを引き受ける場合、ソースIDの値は保持されます。ソース ID の値は、ロールセッション中に実行されるすべてのアクションのリクエストに存在します。設定される値は、ロールセッション中に変更できません。その後、管理者は AWS CloudTrail ログを使用して、ソース ID 情報をモニタリングおよび監査し、共有ロールでアクションを実行したユーザーを特定します。
AttributeValue
要素の値は 2~64 文字で、英数字、アンダースコア、および . , + = @ - (ハイフン).のみを含めることができます。スペースを含めることはできません。値は通常、ユーザーID(johndoe
)やメールアドレス(johndoe@example.com
)など、ユーザーに関連付けられている属性です。ユーザーの表示名 (John Doe
) のように、スペースを含む値とすることはできません。ソースアイデンティティの使用の詳細については、「引き受けたロールで実行されるアクションのモニタリングと制御」を参照してください。
重要
SAML アサーションが SourceIdentity 属性を使用するように設定されている場合、信頼ポリシーにも sts:SetSourceIdentity
アクションを含める必要があります。ソースアイデンティティの使用の詳細については、「引き受けたロールで実行されるアクションのモニタリングと制御」を参照してください。
ソース ID 属性を渡すには、ソース ID の値を指定する AttributeValue
要素を含めます。たとえば、ソース ID DiegoRamirez
を渡すには次の属性を使用します。
<Attribute Name="https://aws.amazon.com/SAML/Attributes/SourceIdentity"> <AttributeValue>DiegoRamirez</AttributeValue>
SAML 属性の AWS 信頼ポリシーコンテキストキーへのマッピング
このセクションの表では、よく使用される SAML 属性や、それらと AWS の信頼ポリシー条件コンテキストキーのマッピングを一覧で示します。これらのキーを使用して、ロールへのアクセスを制御できます。そのためには、SAML アクセスリクエストに付随するアサーションに含まれる値とキーを比較します。
重要
これらのキーは、IAM 信頼ポリシー (誰がロールを利用するかを定義するポリシー) でのみ利用でき、アクセス許可ポリシーには適用できません。
eduPerson および eduOrg 属性の表では、値は文字列または文字列のリストとして型付けされています。文字列値の場合、StringEquals
または StringLike
条件を使用して、IAM 信頼ポリシーでこれらの値をテストできます。文字列のリストを含む値の場合、ForAnyValue
および ForAllValues
ポリシー set 演算子を使用して、信頼ポリシーで値をテストできます。
注記
AWS コンテキストキーごとに含めることができるクレームは 1 つだけです。複数含めた場合は、1 つのクレームのみが対応付けられます。
次の表は、eduPerson 属性と eduOrg 属性を示しています。
eduPerson 属性または eduOrg 属性 (Name キー) |
この AWS コンテキストキー (FriendlyName キー) へのマッピング |
タイプ |
---|---|---|
|
|
文字列のリスト |
|
|
文字列のリスト |
|
|
文字列 |
|
|
文字列のリスト |
|
|
文字列 |
|
|
文字列 |
|
|
文字列のリスト |
|
|
文字列 |
|
|
文字列のリスト |
|
|
文字列のリスト |
|
|
文字列のリスト |
|
|
文字列のリスト |
|
|
文字列のリスト |
|
|
文字列のリスト |
|
|
文字列のリスト |
|
|
文字列のリスト |
|
|
文字列のリスト |
次の表は、Active Directory 属性を示しています。
AD 属性 | この AWS コンテキストキーへのマッピング | タイプ |
---|---|---|
|
|
文字列 |
|
|
文字列 |
|
|
文字列 |
|
|
文字列 |
|
|
文字列 |
|
|
文字列 |
次の表は、X.500 属性を示しています。
X.500 属性 | この AWSコンテキストキーへのマッピング | タイプ |
---|---|---|
|
|
文字列 |
|
|
文字列 |
|
|
文字列 |
|
|
文字列 |
|
|
文字列 |
|
|
文字列 |
|
|
文字列 |