本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
假設角色認證提供者
假設角色涉及使用一組臨時安全認證來訪問 AWS 您可能無法存取的資源。這些臨時登入資料由存取金鑰 ID、私密存取金鑰和安全字符組成。
若要將您的SDK或工具設定為擔任角色,您必須先建立或識別要擔任的特定角色。IAM角色由角色 Amazon 資源名稱 (ARN) 唯一識別。角色與另一個實體建立信任關係。使用此角色的受信任實體可能是 AWS 服務,另一個 AWS 帳戶、Web 身分識別提供者或OIDC、或SAML同盟。
識別IAM角色後,如果您受到該角色的信任,您可以將SDK或工具設定為使用角色所授與的權限。若要這麼做,請使用下列設定。
如需開始使用這些設定的指引,請參閱本指南擔任角色中的。
假設角色認證提供者設定
使用下列項目設定此功能:
credential_source
-共享 AWSconfig
檔案設定-
在 Amazon EC2 執行個體或 Amazon 彈性容器服務容器中使用,以指定SDK或工具可以在何處找到有權承擔您使用
role_arn
參數指定角色的登入資料。預設值:無
有效值:
-
環境 — 指定SDK或工具從環境變數AWS_ACCESS_KEY_ID和擷取來源認證
AWS_SECRET_ACCESS_KEY
。 -
EC2 InstanceMetadata — 指定SDK或工具使用連接到EC2執行個體設定檔的IAM角色來取得來源登入資料。
-
EcsContainer— 指定SDK或工具使用附加至ECS容器的IAM角色來取得來源認證。
您無法在同一個描述檔中同時指定
credential_source
和source_profile
。在
config
檔案中設定此值以指出登入資料應該來自 Amazon 的範例EC2:credential_source = Ec2InstanceMetadata role_arn = arn:aws:iam::
123456789012
:role/my-role-name
-
duration_seconds
-共享 AWSconfig
檔案設定-
指定角色工作階段的最大持續時間 (以秒為單位)。
只有當設定檔指定擔任角色時,才會套用此設定。
預設值:3600 秒 (一小時)
有效值:此值的範圍從 900 秒 (15 分鐘) 到為角色設定的工作階段持續時間上限設定 (最多可為 43200 秒或 12 小時)。如需詳細資訊,請參閱《IAM使用者指南》中的檢視角色的工作階段持續時間上限設定。
在
config
文件中設置此值的示例:duration_seconds =
43200
external_id
-共享 AWSconfig
檔案設定-
指定一個唯一識別符,第三方用來在其客戶帳戶擔任角色。
只有當設定檔指定為擔任角色,且角色的信任原則需要的值時,才會套用此設定
ExternalId
。值會對應至設定檔指定角色時傳遞至AssumeRole
作業的ExternalId
參數。預設值:無。
有效值:請參閱授予您的存取權時如何使用外部 ID AWSIAM使用者指南中提供給第三方的資源。
在
config
文件中設置此值的示例:external_id =
unique_value_assigned_by_3rd_party
mfa_serial
-共享 AWSconfig
檔案設定-
指定使用者在擔任角色時必須使用的多重要素驗證 (MFA) 裝置的識別碼或序號。
假設該角色的信任原則包含需要MFA驗證之條件的角色時,需要此選項。
預設值:無。
有效值:該值可以是硬體裝置的序號 (例如
GAHT12345678
),也可以是虛擬MFA裝置的 Amazon 資源名稱 (ARN)。如需有關的詳細資訊MFA,請參閱IAM使用指南中的 < 設定MFA受保護的API存取 >。在
config
文件中設置此值的示例:mfa_serial =
arn:aws:iam::
123456789012
:mfa/my-user-name
role_arn
-共享 AWSconfig
檔案設定AWS_IAM_ROLE_ARN
-環境變量aws.roleArn
-JVM 系統屬性:僅限爪哇/科特林-
指定您要用來執行使用此設定檔請求之操作之IAM角色的 Amazon 資源名稱 (ARN)。
預設值:無。
有效值:值必須是IAM角色ARN的值,格式如下:
arn:aws:iam::
account-id
:role/role-name
此外,您還必須指定下列其中一個設定:
-
source_profile
— 識別另一個設定檔,用來尋找有權在此設定檔中擔任角色的認證。 -
credential_source
— 使用由目前環境變數或附加至 Amazon 執行個EC2體設定檔的登入資料或 Amazon ECS 容器執行個體所識別的登入資料。 -
web_identity_token_file
— 使用公共身份提供商或任何 OpenID Connect (OIDC) 兼容的身份提供商為已在移動或網絡應用程序中進行身份驗證的用戶。
-
role_session_name
-共享 AWSconfig
檔案設定AWS_IAM_ROLE_SESSION_NAME
-環境變量aws.roleSessionName
-JVM 系統屬性:僅限爪哇/科特林-
指定要連接到角色工作階段的名稱。此名稱會出現在 AWS CloudTrail 記錄與此工作階段相關聯的項目,這在稽核時很有用。
預設值:選擇性參數。如果您未提供此值,則會在設定檔擔任角色時自動產生工作階段名稱。
有效值:提供給
RoleSessionName
參數時 AWS CLI 或 AWS API代表您呼叫AssumeRole
作業 (或AssumeRoleWithWebIdentity
作業等作業)。該值會成為您可以查詢的假定角色使用者 Amazon Resource Name (ARN) 的一部分,並顯示為此設定檔叫用之操作的 CloudTrail 日誌項目的一部分。arn:aws:sts::
.123456789012
:assumed-role/my-role-name
/my-role_session_name
在
config
文件中設置此值的示例:role_session_name =
my-role-session-name
source_profile
-共享 AWSconfig
檔案設定-
指定另一個設定檔,其認證是用來擔任原始設定檔中
role_arn
設定所指定角色的設定檔。瞭解設定檔在共用中的使用方式 AWSconfig
和credentials
檔案,請參閱共用config和credentials檔案。如果您指定的設定檔也是假設角色設定檔,則會依序假設每個角色來完全解析認證。當SDK遇到具有認證的設定檔時,會停止此鏈結。角色鏈接限制了您的 AWS CLI 或 AWS API角色會話最多一個小時,無法增加。如需詳細資訊,請參閱《IAM使用指南》中的「角色」術語和概念。
預設值:無。
有效值:由
config
和credentials
檔案中定義的設定檔名稱組成的文字字串。您還必須在目前紀要role_arn
中指定的值。您無法在同一個描述檔中同時指定
credential_source
和source_profile
。在配置文件中設置此值的示例:
[profile
A
] source_profile =B
role_arn = arn:aws:iam::123456789012
:role/RoleA
[profileB
] aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token=IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
在上述範例中,
A
描述檔使用B
描述檔中的憑證。當您指定SDK或工具應該使用設定A
檔時,SDK或工具會自動查詢連結B
設定檔的認證,並使用這些認證來要求指定IAM角色的暫時認證。SDK或工具會在背景中使用 sts: AssumeRole 作業來完成此作業。然後,您的代碼將使用這些臨時憑據來訪問 AWS 的費用。指定的角色必須具有允許執行要求的程式碼的附加IAM權限原則,例如命令、 AWS 服務,或API方法。 web_identity_token_file
-共享 AWSconfig
檔案設定AWS_WEB_IDENTITY_TOKEN_FILE
-環境變量aws.webIdentityTokenFile
-JVM 系統屬性:僅限爪哇/科特林-
指定包含受支援 OAuth 2.0 提供者或 OpenID 身分識別提供者
之存取權杖之檔案的 Connect 徑。 此設定可透過使用網路身分聯合提供者 (例如 Google
、Facebook 和 Amazon 等) 來啟用身份驗證。SDK或開發人員工具會載入此檔案的內容,並在代表您呼叫 AssumeRoleWithWebIdentity
作業時將其當做WebIdentityToken
引數傳遞。預設值:無。
有效值:此值必須是路徑和檔案名稱。該文件必須包含身份提供者提供給您的 OAuth 2.0 訪問令牌或 OpenID Connect 令牌。相對路徑會被視為相對於流程的工作目錄。
兼容性 AWS SDKs
下列項目SDKs支援本主題中描述的功能和設定。注意到任何部分例外情況。任何JVM系統屬性設定都受到 AWS SDK for Java 和 適用於 Kotlin 的 AWS SDK 只有。
SDK | 支援 | 備註或更多資訊 |
---|---|---|
AWS CLI V2 | 是 | |
SDK對於 C ++ | 部分 | credential_source 不支援。 duration_seconds 不支援。 mfa_serial 不支援。 |
SDK對於轉到 V2(1.x) |
是 | |
SDK對於圍棋 1.x(V1) | 是 | 若要使用共用config 檔案設定,您必須開啟從設定檔載入功能;請參閱工作階段。 |
SDK對於爪哇 2.x | 部分 | mfa_serial 不支援。AWS_ROLE_ARN 而不是使用AWS_IAM_ROLE_ARN 。AWS_ROLE_SESSION_NAME 而不是使用AWS_IAM_ROLE_SESSION_NAME 。 |
SDK對於爪哇 1.x | 部分 | credential_source 不支援。 mfa_serial 不支援。JVM不支援系統內容。 |
SDK對於 JavaScript 3. x | 是 | |
SDK對於 JavaScript 2.x | 部分 | credential_source 不支援。 |
SDK對於科特林 | 是 | AWS_ROLE_ARN 而不是使用AWS_IAM_ROLE_ARN 。AWS_ROLE_SESSION_NAME 而不是使用AWS_IAM_ROLE_SESSION_NAME 。 |
SDK對於. NET3.x | 是 | |
SDK對於 PHP 3. x | 是 | |
SDK對於 Python(肉毒桿菌 3) |
是 | |
SDK對於紅寶石 3.x | 是 | |
SDK對於銹 | 是 | |
SDK為斯威夫特 | 是 | |
適用的工具 PowerShell | 是 |