透過在 IAM 政策中指定工作階段文件使用文件啟動預工作階段 - AWS Systems Manager

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

透過在 IAM 政策中指定工作階段文件使用文件啟動預工作階段

如果您使用 start-session AWS CLI 命令及預設工作階段文件,則可以省略文件名稱。系統會自動呼叫 SSM-SessionManagerRunShell 工作階段文件。

在其他所有情況下,您必須指定 document-name 參數值。當使用者在命令中指定工作階段文件的名稱時,系統會檢查其 IAM 政策,以確認其有權存取該文件。如果使用者沒有許可,連線請求就會失敗。下列範例包含 AWS-StartPortForwardingSession 工作階段文件的 document-name 參數。

aws ssm start-session \ --target i-02573cafcfEXAMPLE \ --document-name AWS-StartPortForwardingSession \ --parameters '{"portNumber":["80"], "localPortNumber":["56789"]}'

啟動工作階段時強制執行工作階段文件許可檢查

若要限制對 AWS-StartPortForwardingSession 工作階段文件的存取,您可以將條件元素加入至使用者的 IAM 政策,用以驗證使用者是否具有對工作階段文件的明確存取權。套用此條件時,使用者必須指定 start-session 命令的 document-name 選項的值。下列條件元素加入至 IAM 政策中的 ssm:StartSession 動作時,會執行工作階段文件存取檢查。

"Condition": { "BoolIfExists": { "ssm:SessionDocumentAccessCheck": "true" } }

將此條件元素設定為後 true,必須在 IAM 政策中授與對工作階段文件的明確存取權,使用者才能啟動工作階段。若要確保強制執行條件元素,它必須包含在允許 ssm:StartSession 動作的所有政策陳述式中。請見此處範例。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnableSSMSession", "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:us-west-2:123456789012:instance/i-02573cafcfEXAMPLE", "arn:aws:ssm:us-west-2::document/AWS-StartPortForwardingSession" ], "Condition": { "BoolIfExists": { "ssm:SessionDocumentAccessCheck": "true" } } } ] }

設定此 IAM 政策後,如果 SessionDocumentAccessCheck 條件元素設定為 true,則使用者在使用 AWS CLI 啟動工作階段時,必須在其命令中輸入 document-name 參數。document-name 的值必須是 IAM 政策 Resource 一節中指定的文件。如果使用者輸入不同的文件名稱,或者未指定 document-name 參數,則請求會失敗。

如果 SessionDocumentAccessCheck 條件元素設為 false,則不會影響 IAM 政策的評估。

如需在 IAM 政策中指定 Session Manager 工作階段文件的範例,請參閱 Session Manager的最終使用者政策快速入門

其他 案例

為了使用 SSH 來開始工作階段,您必須在目標受管節點和使用者的本機電腦上都完成設定步驟。如需詳細資訊,請參閱 (選用) 允許和控制透過 SSH 連線的權限Session Manager