本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
IAM和 AWS STS 條件上下文鍵
您可以使用JSON原則中的Condition
元素來測試包含在所有要求之要 AWS 求內容中的索引鍵值。這些鍵提供有關請求本身或請求參考的資源的資訊。在允許使用者請求的動作之前,您可以檢查鍵是否有指定的值。這使您可以精確控制JSON政策聲明何時匹配或不匹配傳入請求。如需如何在JSON策略中使用Condition
元素的詳細資訊,請參閱IAMJSON政策元素:Condition。
本主題說明服務 (含前置詞) 和 () IAM 服務 (含iam:
前置詞AWS STS) 所定義及提供的sts:
金鑰。 AWS Security Token Service 其他一些 AWS 服務也提供與該服務定義的動作和資源相關的服務特定金鑰。如需詳細資訊,請參閱AWS 服務的動作、資源和條件金鑰。支援條件鍵的服務文件通常包含其他資訊。例如,如需可在 Amazon S3 資源政策中使用之金鑰的資訊,請參閱 Amazon Simple Storage Service 使用者指南中的 Amazon S3 政策鍵。
IAM 的可用鍵
您可以在控制IAM資源存取的策略中使用下列條件金鑰:
- IAM:AssociatedResourceArn
-
適用於ARN運營商。
指定目ARN的地服務與此角色相關聯的資源。資源通常屬於主體者傳遞角色的目標服務。有時候,資源也可能屬於第三個服務。例如,您可以將角色傳遞給他們在 Amazon EC2 執行個體上使用的 Amazon EC2 Auto Scaling。在這種情況下,條件將與 Amazon EC2 執行個體ARN的條件相符。
此條件索引鍵僅適用於策略中的PassRole動作。不能用來限制任何其他動作。
在政策中使用此條件鍵以允許實體傳遞角色,但只有在該角色與指定的資源相關聯時才行。您可以使用萬用字元 (*),允許對特定類型的資源執行操作,而不限制區域或資源 ID。例如,您可以允許使用IAM者或角色將任何角色傳遞給 Amazon EC2 服務,以便與區域
us-east-1
或中的執行個體搭配使用us-west-1
。不允許IAM使用者或角色將角色傳遞給其他服務。此外,它不允許 Amazon EC2 將角色用於其他區域中的執行個體。{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": {"iam:PassedToService": "ec2.amazonaws.com"}, "ArnLike": { "iam:AssociatedResourceARN": [ "arn:aws:ec2:us-east-1:111122223333:instance/*", "arn:aws:ec2:us-west-1:111122223333:instance/*" ] } } }
注意
AWS 支援 iam: 的服務PassedToService也支援此條件金鑰。
- IAM:AWSServiceName
-
使用字串運算子。
指定此角色所附加的 AWS 服務。
在此範例中,若服務名稱為 access-analyzer.amazonaws.com,您可允許實體建立服務連結角色。
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": "access-analyzer.amazonaws.com" } } }] }
- IAM: FIDO-認證
-
使用字串運算子。
在註冊FIDO安全金鑰時檢查MFA裝置FIDO認證等級。裝置認證是從FIDO聯盟中繼資料服務 (MDS)
擷取。如果FIDO安全金鑰的認證狀態或等級發生變更,除非裝置已取消註冊並重新註冊以取得更新的認證資訊,否則它將不會更新。 L1、L1plus、L2、L2plus、L3、L3plus 的可能值
在此範例中,您註冊安全金鑰並擷取裝置的第 1 FIDO 級和認證。
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Create" } } }, { "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Activate", "iam:FIDO-certification": "L1plus" } } } ] }
- 我:FIDO-FIPS -140-2-認證
-
使用字串運算子。
在註冊安全金鑰時檢查MFA裝置 FIPS -140-2 驗證認證等級。FIDO裝置認證是從FIDO聯盟中繼資料服務 (MDS)
擷取。如果FIDO安全金鑰的認證狀態或等級發生變更,除非裝置已取消註冊並重新註冊以取得更新的認證資訊,否則它將不會更新。 L1、L2、L3、L4 的可能值
在此範例中,您會註冊安全金鑰並擷取裝置的 FIPS -140-2 Level 2 認證。
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Create" } } }, { "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Activate", "iam:FIDO-FIPS-140-2-certification": "L2" } } } ] }
- 我:FIDO-FIPS -140-認證
-
使用字串運算子。
在註冊安全金鑰時檢查MFA裝置 FIPS -140-3 驗證認證等級。FIDO裝置認證是從FIDO聯盟中繼資料服務 (MDS)
擷取。如果FIDO安全金鑰的認證狀態或等級發生變更,除非裝置已取消註冊並重新註冊以取得更新的認證資訊,否則它將不會更新。 L1、L2、L3、L4 的可能值
在此範例中,您註冊安全金鑰並擷取裝置的 FIPS -140-3 第 3 級認證。
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Create" } } }, { "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Activate", "iam:FIDO-FIPS-140-3-certification": "L3" } } } ] }
- IAM:RegisterSecurityKey
-
使用字串運算子。
檢查裝MFA置啟用的目前狀態。
可能值為
Create
或Activate
。在此範例中,您註冊安全金鑰並擷取裝置的 FIPS -140-3 第 1 級認證。
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Create" } } }, { "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Activate", "iam:FIDO-FIPS-140-3-certification": "L1" } } } ] }
- IAM:OrganizationsPolicyId
-
使用字串運算子。
檢查具有指定 AWS Organizations ID 的策略是否符合請求中使用的策略。若要檢視使用此條件索引鍵的範例IAM策略,請參閱IAM:檢視 Organizations 政策上次存取的服務資訊。
- IAM:PassedToService
-
使用字串運算子。
指定可以將角色傳遞到的服務的服務主體。此條件索引鍵僅適用於策略中的PassRole動作。不能用來限制任何其他動作。
當您在政策中使用此條件鍵時,請使用服務主體指定服務。服務主體是可以在政策的
Principal
元素中指定的服務名稱。這是通常的格式:SERVICE_NAME_URL.amazonaws.com
。您可以使用
iam:PassedToService
限制使用者,以便他們只能將角色傳遞給特定服務。例如,使用者可以建立信任代表他們 CloudWatch 將日誌資料寫入 Amazon S3 儲存貯體的服務角色。然後,使用者必須將許可政策和信任政策連接到新的服務角色。在這種情況下,信任政策必須在cloudwatch.amazonaws.com
元素中指定Principal
。若要檢視允許使用者將角色傳遞給的策略 CloudWatch,請參閱IAM:將 IAM 角色傳遞給特定 AWS 服務。透過使用此條件鍵,您可以確保使用者僅為您指定的服務建立服務角色。例如,如果具有上述政策的使用者嘗試為 Amazon 建立服務角色EC2,則作業將會失敗。發生失敗的原因是使用者沒有將角色傳遞給 Amazon 的權限EC2。
有時您會將角色傳遞給服務,然後將角色傳遞給不同服務。
iam:PassedToService
僅包含擔任角色的最終服務,而不是傳遞角色的中繼服務。注意
有些服務不支援此條件鍵。
- IAM:PermissionsBoundary
-
適用於ARN運營商。
檢查指定的策略是否已附加為IAM主參與者資源的權限界限。如需詳細資訊,請參閱 IAM 實體的許可界限
- IAM: 政策 ARN
-
適用於ARN運營商。
在涉及受管政策的請求中檢查受管政策的 Amazon 資源名稱 (ARN)。如需詳細資訊,請參閱控制對政策的存取。
- IAM:ResourceTag/
key-name
-
使用字串運算子。
檢查連接至身分資源 (使用者或角色) 的標籤是否符合指定的鍵名稱和值。
注意
IAM並 AWS STS 支持
iam:ResourceTag
IAM條件鍵和aws:ResourceTag
全局條件鍵。您可以使用鍵值配對的形式將自訂屬性新增至IAM資源。如需資源標籤的詳細IAM資訊,請參閱AWS Identity and Access Management 資源標籤。您可以用
ResourceTag
來控制對資源 (包括 AWS IAM資源) 的存取。但是,由於IAM不支援群組的標籤,因此您無法使用標籤來控制群組的存取。此範例會示範如何建立身分型政策,允許刪除具有
status=terminated
標籤的使用者。若要使用此原則,請取代italicized placeholder text
在示例策略中使用您自己的信息。然後,遵循建立政策或編輯政策中的指示進行操作。{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:DeleteUser", "Resource": "*", "Condition": {"StringEquals": {"iam:ResourceTag/
status
": "terminated
"}} }] }
AWS OIDC聯盟的可用金鑰
您可以使用OIDC聯合將臨時安全憑據提供給已通過 OpenID Connect 兼容身份提供程序(IdP)進行身份驗證的用戶提供給您 AWS 帳戶中的 IAM OpenID Connect(OIDC)身份提供程序。這些供應商的例子包括 GitHub, Amazon Cognito, Login with Amazon, 和谷歌. 您可以使用來自您自己 IdP 的身分權杖和存取權杖,以及授予 Amazon 彈性 Kubernetes 服務工作負載的服務帳戶權杖。
您可以使用 AWS OIDC條件內容索引鍵來撰寫原則,限制同盟使用者只能存取與特定提供者、應用程式或使用者相關聯的資源。這些鍵通常用於角色的信任政策。使用OIDC提供者名稱 (token.actions.githubusercontent.com
) 後跟宣告 (:aud
): 來定義條件索引鍵token.actions.githubusercontent.com:aud
。
角色工作階段中可以使用某些OIDC聯合條件金鑰來授權資源存取。如果 [可在工作階段中使用] 欄中的值為 [是],您可以在策略中使用這些條件索引鍵來定義允許使用者在其他 AWS 服務中存取的項目。當宣告無法在工作階段中使用時,OIDC條件內容金鑰只能用於初始AssumeRoleWithWebIdentity驗證的角色信任原則中。
選取您的 IdP 以查看來自 IdP 的宣告如何對應至中的IAM條件內容索引鍵。 AWS
關於OIDC同盟的更多資訊
SAML以 AWS STS 聯合為基礎的可用金鑰
如果您使用 AWS Security Token Service (AWS STS) 使用SAML基於聯合,則可以在策略中包含其他條件索引鍵。
SAML角色信任原則
在角色的信任政策中,您可以包含以下鍵,這些鍵可幫助您確定是否允許呼叫者擔任該角色。除了saml:doc
,所有的值都是從SAML斷言派生的。當您建立或編輯具有條件的原則時,可在IAM主控台視覺化編輯器中使用清單中的所有項目。標示為 []
的項目可以具有一個值,該值是指定類型的清單。
- saml:aud
-
使用字串運算子。
SAML宣告所呈現的端點URL。此鍵值來自聲明中的
SAML Recipient
欄位,而不是Audience
欄位。 - 薩姆爾:commonName[]
-
使用字串運算子。
這是
commonName
屬性。 - saml:cn[]
-
使用字串運算子。
這是
eduOrg
屬性。 - saml:doc
-
使用字串運算子。
這代表用來擔任該角色的主體。格式為
account-ID
/provider-friendly-name
,例如123456789012/SAMLProviderName
。帳戶識別碼值是指擁有提供者的帳戶。SAML - saml:edupersonaffiliation[]
-
使用字串運算子。
這是
eduPerson
屬性。 - saml:edupersonassurance[]
-
使用字串運算子。
這是
eduPerson
屬性。 - saml:edupersonentitlement[]
-
使用字串運算子。
這是
eduPerson
屬性。 - saml:edupersonnickname[]
-
使用字串運算子。
這是
eduPerson
屬性。 - saml:edupersonorgdn
-
使用字串運算子。
這是
eduPerson
屬性。 - saml:edupersonorgunitdn[]
-
使用字串運算子。
這是
eduPerson
屬性。 - saml:edupersonprimaryaffiliation
-
使用字串運算子。
這是
eduPerson
屬性。 - saml:edupersonprimaryorgunitdn
-
使用字串運算子。
這是
eduPerson
屬性。 - saml:edupersonprincipalname
-
使用字串運算子。
這是
eduPerson
屬性。 - saml:edupersonscopedaffiliation[]
-
使用字串運算子。
這是
eduPerson
屬性。 - saml:edupersontargetedid[]
-
使用字串運算子。
這是
eduPerson
屬性。 - saml:eduorghomepageuri[]
-
使用字串運算子。
這是
eduOrg
屬性。 - saml:eduorgidentityauthnpolicyuri[]
-
使用字串運算子。
這是
eduOrg
屬性。 - saml:eduorglegalname[]
-
使用字串運算子。
這是
eduOrg
屬性。 - saml:eduorgsuperioruri[]
-
使用字串運算子。
這是
eduOrg
屬性。 - saml:eduorgwhitepagesuri[]
-
使用字串運算子。
這是
eduOrg
屬性。 - 薩姆爾:givenName[]
-
使用字串運算子。
這是
givenName
屬性。 - saml:iss
-
使用字串運算子。
發行人,這是由一個表示URN.
- saml:mail[]
-
使用字串運算子。
這是
mail
屬性。 - saml:name[]
-
使用字串運算子。
這是
name
屬性。 - saml:namequalifier
-
使用字串運算子。
以SAML提供者易記名稱為基礎的雜湊值。該值是下列值的串連,依照順序且以 '/' 字元區隔:
-
Issuer
回應值 (saml:iss
) -
AWS
帳戶 ID -
SAML提供者的易記名稱 (的最後一部分ARN) IAM
帳戶 ID 和SAML提供者的易記名稱串連可用於IAM策略作為金鑰
saml:doc
。如需詳細資訊,請參閱以唯一方式識別以聯盟SAML為基礎。 -
- 薩姆爾:organizationStatus[]
-
使用字串運算子。
這是
organizationStatus
屬性。 - 薩姆爾:primaryGroupSID[]
-
使用字串運算子。
這是
primaryGroupSID
屬性。 - saml:sub
-
使用字串運算子。
這是該陳述的主題,其中包含單獨辨識組織中某個使用者的值 (例如
_cbb88bf52c2510eabe00c1642d4643f41430fe25e3
)。 - saml:sub_type
-
使用字串運算子。
此索引鍵可以具有值
persistent
transient
,或由SAML宣告中使用的Subject
和NameID
元素的完整Format
URI值組成。persistent
的值表示saml:sub
中的值對於工作階段之間的使用者是相同的。如果值為transient
,則使用者在每個工作階段中擁有不同的saml:sub
值。如需NameID
元素的Format
屬性的詳細資訊,請參閱 設定驗證回SAML應的宣告。 - saml:surname[]
-
使用字串運算子。
這是
surnameuid
屬性。 - saml:uid[]
-
使用字串運算子。
這是
uid
屬性。 - 樣本:500 倍 UniqueIdentifier []
-
使用字串運算子。
這是
x500UniqueIdentifier
屬性。
有關一般資訊eduPerson
和eduOrg
屬性,請參閱 REFEDSWiki 網站eduPerson
屬性清單,請參閱eduPerson 物件類別規格 (201602
類型為清單的條件鍵可包括多個值。若要在清單值的政策中建立條件,可以使用設定運算子 (ForAllValues
、ForAnyValue
)。例如,若要允許關係為「教職員」或「員工」 (但不是「學生」) 的任何使用者,您可以使用如下條件:
"Condition": { "ForAllValues:StringLike": { "saml:edupersonaffiliation":[ "faculty", "staff"] } }
跨服務SAML型 AWS STS 聯合內容金鑰
某些SAML基於聯合條件的金鑰可用於後續要求中,以授權其他服務和AssumeRole
呼叫中的 AWS 作業。當聯合主參與者擔任其他角色時,可在角色信任原則中使用這些條件金鑰,以及在來自其他 AWS 服務的資源策略中,以授權同盟主參與者存取資源時,這些條件金鑰可用於角色信任原則中。如需有關使用這些金鑰的詳細資訊,請參閱關於 SAML 2.0 型聯合。
選取條件鍵以查看描述。
注意
在初始外部身分識別提供者 (IdP) 驗證回應之後,沒有其他SAML基於聯合條件的金鑰可供使用。
可用的按鍵 AWS STS
對於假定使用 AWS Security Token Service (AWS STS) 作業的IAM角色,您可以在角色信任原則中使用下列條件金鑰。
- saml:sub
-
使用字串運算子。
這是該陳述的主題,其中包含單獨辨識組織中某個使用者的值 (例如
_cbb88bf52c2510eabe00c1642d4643f41430fe25e3
)。 - STS: AWSServiceName
-
使用字串運算子。
使用此鍵來指定可以使用持有人權杖的服務。當您在政策中使用此條件鍵時,請使用服務主體指定服務。服務主體是可以在政策的
Principal
元素中指定的服務名稱。例如,codeartifact.amazonaws.com
是 AWS CodeArtifact 服務主體。可用性 – 此鍵會呈現在取得持有人權杖的請求中。您不能直接調用以 AWS STS 獲取承載令牌。當您在其他服務中執行某些操作時,服務會代表您請求持有人權杖。
某些 AWS 服務需要您具有獲得 AWS STS 服務承載令牌的權限,然後才能以編程方式訪問其資源。例如, AWS CodeArtifact 需要主體使用持有人權杖來執行某些操作。
aws codeartifact get-authorization-token
命令會傳回一個持有人權杖。然後,您可以使用承載令牌來執行 AWS CodeArtifact 操作。如需有關持有人權杖的詳細資訊,請參閱服務承載令牌。您可以使用此條件鍵來允許主體取得持有人權杖,以與特定服務搭配使用。
- STS: DurationSeconds
-
適用於數字運算子。
使用此索引鍵可指定主體在取得 AWS STS 承載權杖時可使用的持續時間 (以秒為單位)。
可用性 – 此鍵會呈現在取得持有人權杖的請求中。您不能直接調用以 AWS STS 獲取承載令牌。當您在其他服務中執行某些操作時,服務會代表您請求持有人權杖。 AWS STS assume-role 操作不會呈現鍵。
某些 AWS 服務需要您具有獲得 AWS STS 服務承載令牌的權限,然後才能以編程方式訪問其資源。例如, AWS CodeArtifact 需要主體使用持有人權杖來執行某些操作。
aws codeartifact get-authorization-token
命令會傳回一個持有人權杖。然後,您可以使用承載令牌來執行 AWS CodeArtifact 操作。如需有關持有人權杖的詳細資訊,請參閱服務承載令牌。 - STS: ExternalId
-
使用字串運算子。
使用此索引鍵可要求主參與者在擔任IAM角色時提供特定的識別元。
可用性 — 當主參與者提供外部 ID,同時假設角色使用 AWS CLI 或時,此索引鍵會出現在要求中 AWS API。
當您在其他帳戶擔任角色時,可能需要此唯一識別符。若帳戶管理員 (該角色所屬的帳戶) 提供給您外部 ID,請將該數值填入
ExternalId
參數。該值可為任何字串,例如密碼短語或帳號。外部 ID 的主要功能是解決並防止「混淆代理人」問題。如需有關外部 ID 和混淆代理人問題的詳細資訊,請參閱 訪問由第三方 AWS 帳戶 擁有。ExternalId
值必須最少為 2 個字元,最多為 1,224 個字元。該值必須為英數字元,且不包含空格。也可以包含下列符號:加號 (+)、等號 (=)、逗號 (,)、句號 (.)、小老鼠 (@)、冒號 (:)、正斜線 (/) 和連字號 (-)。 - sts:RequestContext/上下文鍵
-
使用字串運算子。
使用此鍵,可將內嵌在請求中所傳遞的受信任權杖發行者簽署之內容聲明的工作階段內容鍵/值對,與角色信任政策中指定的內容鍵/值進行比較。
可用性 — 當在要求參數中提供內容宣告,同時假設使用 AWS STS AssumeRoleAPI作業的角色時,此索引鍵會出現在
ProvidedContexts
要求中。此內容鍵會格式化為
"sts:RequestContext/context-key":"context-value"
,其中位context-key
和context-value
為內容鍵/值對。如果請求中傳遞簽署內容聲明中內嵌了多個內容鍵,則每一組鍵/值對都有一個內容鍵。您必須為角色信任政策中的sts:SetContext
動作授予許可,才能允許主體在產生的工作階段權杖中設定內容鍵。若要深入瞭解可與此金鑰搭配使用的支援 IAM Identity Center 內容金鑰,請參閱使用AWS IAM Identity Center 者指南中的 IAM Identity Center AWS STS 條件金鑰。您可以在角色信任政策中使用此鍵,以便在使用者或其屬性擔任角色時,能根據使用者或其屬性實行精細的存取控制。假設角色之後,活動會出現在
AdditionalEventData
屬性內的 AWS CloudTrail 記錄檔中,其中包含由前後關聯提供者在假設角色請求中設定的工作階段前後關聯索引鍵值配對。當不同的主體使用角色時,這可讓系統管理員更容易區分角色工作階段。索引鍵值配對是由指定的內容提供者所設定,而不是由 AWS CloudTrail 或 AWS STS設定。這可讓內容提供者控制 CloudTrail 記錄檔和工作階段資訊中包含的內容。 - STS: RequestContextProviders
-
適用於ARN運營商。
使用此索引鍵可將要求ARN中的前後關聯提供者與角色信任原則中ARN指定的前後關聯提供者進行比較。
可用性 — 當在要求參數中提供內容宣告,同時假設使用 AWS STS AssumeRoleAPI作業的角色時,此索引鍵會出現在
ProvidedContexts
要求中。下列範例條件會檢查要求中ARN傳遞的前後關聯提供者是否符合角色信任原則條件中ARN指定的。
"Condition": { "ForAllValues:ArnEquals": { "sts:RequestContextProviders": [ "arn:aws:iam::aws:contextProvider/IdentityCenter" ] } }
- STS: RoleSessionName
-
使用字串運算子。
使用此鍵,比較使用政策中指定的值擔任角色時,主體指定的工作階段名稱。
可用性 — 當主體使用 AWS Management Console、任何 assume-role CLI 命令或任何作業擔任角色時,此索引鍵會出現在要求中。 AWS STS
AssumeRole
API您可以在角色信任政策中使用此鍵,請求您的使用者在擔任角色時提供特定的工作階段名稱。例如,您可以要求使IAM用者指定自己的使用者名稱作為其工作階段名稱。IAM使用者擔任該角色之後,活動會顯示在AWS CloudTrail 記錄中,且工作階段名稱與其使用者名稱相符。當不同的主體使用角色時,這可讓系統管理員更容易區分角色工作階段。
下列角色信任原則要求帳IAM戶中的使用IAM者在擔任角色時,
111122223333
提供其使用者名稱作為工作階段名稱。使用條件鍵中的aws:username
條件變數強制執行此需求。此原則可讓IAM使用者擔任原則所附加的角色。此原則不允許使用臨時認證的任何人擔任該角色,因為username
變數僅供使用IAM者使用。重要
您可以使用任何單一值條件鍵作為變數。您無法使用多重值條件鍵做為變數。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RoleTrustPolicyRequireUsernameForSessionName", "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": {"AWS": "arn:aws:iam::111122223333:root"}, "Condition": { "StringLike": {"sts:RoleSessionName": "${aws:username}"} } } ] }
當管理員檢視動作的 AWS CloudTrail 記錄檔時,他們可以將工作階段名稱與其帳戶中的使用者名稱進行比較。在下列範例中,名為
matjac
的使用者使用名為MateoRole
的角色執行作業。然後,管理員可以聯絡 Mateo Jackson,他擁有名為matjac
的使用者。"assumedRoleUser": { "assumedRoleId": "AROACQRSTUVWRAOEXAMPLE:
matjac
", "arn": "arn:aws:sts::111122223333:assumed-role/MateoRole
/matjac
" }如果您允許使用角色進行跨帳戶存取,則某個帳戶中的使用者可以在另一個帳戶中擔任角色。中列出ARN的假定角色使用者 CloudTrail包含角色所在的帳號。它不包括擔任角色的使用者帳戶。使用者僅在帳戶中是唯一的。因此,我們建議您只使用此方法來 CloudTrail 檢查您所管理帳戶中使用者所承擔之角色的記錄。您的使用者可能會在多個帳戶中使用相同的使用者名稱。
- STS: SourceIdentity
-
使用字串運算子。
使用此鍵,比較使用政策中指定的值擔任角色時,主體指定的來源身分。
可用性 — 當主體提供來源識別,同時使用任何 AWS STS assume-role CLI 命令或 AWS STS
AssumeRole
API作業假設角色時,此索引鍵會出現在要求中。您可以在角色信任政策中使用此鍵,請求您的使用者在擔任角色時設定特定的來源身分。例如,您可以要求人力或聯合身分來指定來源身分的值。您可以將身分提供者 (IdP) 設定為使用與使用者相關聯的其中一個屬性,例如使用者名稱或電子郵件作為來源身分。然後,IdP 會將來源識別做為其傳送至的宣告或宣告中的屬性傳遞。 AWS來源身分屬性的值可識別擔任該角色的使用者或應用程式。
在使用者擔任該角色之後,活動會出現在具有已設定來源身分值的 AWS CloudTrail 日誌中。這可讓系統管理員更容易判斷使用中的角色執行動作的人員或哪些動作 AWS。您必須對
sts:SetSourceIdentity
動作授予許可,允許身分以設定來源身分。與 sts:RoleSessionName 不同,在設定來源身分之後,就無法變更值。這會出現在由角色以來源身分所採取的所有動作的請求內容中。當您使用工作階段憑證來擔任另一個角色時,此值仍然存在於後續角色工作階段。從另一個角色取得及擔任角色稱為角色鏈結。
您可以使用aws:SourceIdentity全域條件索引鍵,根據後續要求中的來源識別值,進一步控制 AWS 資源的存取。
下列角色信任原則可讓IAM使
AdminUser
用者擔任帳戶中的角色111122223333
。它也會對AdminUser
許可授予來設定來源身分,只要來源身分識別設定為DiegoRamirez
。{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAdminUserAssumeRole", "Effect": "Allow", "Principal": {"AWS": " arn:aws:iam::111122223333:user/AdminUser"}, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ], "Condition": { "StringEquals": {"sts:SourceIdentity": "DiegoRamirez"} } } ] }
若要進一步了解有關使用來源身分的詳細資訊,請參閱 監控並控制使用擔任角色所採取的動作。
- STS: TransitiveTagKeys
-
使用字串運算子。
使用此鍵,可將請求中的可轉移工作階段標籤鍵與政策中指定的內容進行比較。
可用性 – 當您使用臨時安全憑證提出請求時,此鍵會呈現在請求中。這些包括使用任何 assume-role 操作或
GetFederationToken
操作所建立的憑證。當您使用暫時安全憑證提出請求時,請求內容會包含
aws:PrincipalTag
內容鍵。此鍵包含工作階段標籤的清單、可轉移工作階段標籤和角色標籤。可轉移工作階段標籤是在您使用工作階段憑證擔任另一個角色時,保存到所有後續工作階段的標籤。從另一個角色取得及擔任角色稱為角色鏈結。您可以在政策中使用此條件鍵,要求在擔任角色或與使用者聯合身分時將特定工作階段標籤設為可轉移。