View a markdown version of this page

在 Snowball Edge 上本機使用 IAM - AWS Snowball 邊緣開發人員指南

AWS Snowball 邊緣不再提供給新客戶。新客戶應探索AWS DataSync線上傳輸、用於安全實體傳輸的AWS資料傳輸終端機,或AWS合作夥伴解決方案。對於邊緣運算,請探索 AWS Outpost。

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

在 Snowball Edge 上本機使用 IAM

AWS Identity and Access Management(IAM) 可協助您安全地控制對AWS Snowball 邊緣裝置上執行之AWS資源的存取。您可以使用 IAM 來控制能通過身分驗證 (登入) 和授權使用資源的 (具有許可) 的人員。

在您的裝置本機支援 IAM。您可以使用本機 IAM 服務來建立新的使用者,並將 IAM 政策連接到他們。您可以使用這些政策來允許執行指派任務所需的存取權。例如,您可以讓使用者能夠傳輸資料,但限制他們建立新的 Amazon EC2-compatible執行個體的能力。

此外,您可以在裝置上使用AWS Security Token Service(AWS STS) 建立本機工作階段型登入資料。如需 IAM 服務的相關資訊,請參閱《IAM 使用者指南》中的入門

您裝置的根登入資料無法停用,而且您無法使用帳戶中的政策明確拒絕存取AWS 帳戶根使用者。我們建議您保護根使用者存取金鑰,並建立 IAM 使用者登入資料,以便與裝置進行日常互動。

重要

本節中的文件適用於在AWS Snowball 邊緣本機裝置上使用 IAM。如需在 中使用 IAM 的詳細資訊AWS 雲端,請參閱 中的身分與存取管理AWS Snowball Edge

若要讓AWS服務在 Snowball Edge 上正常運作,您必須允許服務的連接埠。如需詳細資訊,請參閱Snowball Edge 上 AWS 服務的連接埠需求

在 Snowball Edge 上使用AWS CLI和 API 操作

使用AWS CLI或 API 操作在 Snowball Edge AWS STS上發出 IAM、Amazon S3 和 Amazon EC2 命令時,您必須將 指定region為「」snow。 您可以使用 aws configure 或在命令本身內執行此操作,如下列範例所示。

aws configure --profile abc AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: 1234567 Default region name [None]: snow Default output format [None]: json

aws iam list-users --endpoint http://192.0.2.0:6078 --region snow --profile snowballEdge
注意

本機在AWS Snowball 邊緣上使用的存取金鑰 ID 和存取私密金鑰無法與 中的金鑰交換AWS 雲端。

Snowball Edge 上支援的 IAM AWS CLI命令清單

以下是 Snowball Edge 裝置上支援的 IAM AWS CLI命令和選項子集的描述。如果某命令或選項未在以下列出,則不受支援。命令不支援的參數會在描述中註明。

  • attach-role-policy – 將指定的受管政策連接至指定的 IAM 角色。

  • attach-user-policy – 將指定的受管政策連接至指定的使用者。

  • create-access-key – 為指定的使用者建立新的本機 IAM 私密存取金鑰和對應的AWS存取金鑰 ID。

  • create-policy – 為您的裝置建立新的 IAM 受管政策。

  • create-role – 為您的裝置建立新的本機 IAM 角色。支援下列參數:

    • Tags

    • PermissionsBoundary

  • create-user – 為您的裝置建立新的本機 IAM 使用者。支援下列參數:

    • Tags

    • PermissionsBoundary

  • delete-access-key – 刪除指定使用者的新本機 IAM 私密存取金鑰和對應的AWS存取金鑰 ID。

  • delete-policy – 刪除指定的受管政策。

  • delete-role – 刪除指定的角色。

  • delete-user – 刪除指定的使用者。

  • detach-role-policy – 從指定的角色移除指定的受管政策。

  • detach-user-policy – 從指定的使用者移除指定的受管政策。

  • get-policy – 擷取指定受管政策的相關資訊,包括政策的預設版本,以及附加政策的本機 IAM 使用者、群組和角色總數。

  • get-policy-version – 擷取指定受管政策指定版本的相關資訊,包括政策文件。

  • get-role – 擷取指定角色的相關資訊,包括角色的路徑、GUID、ARN,以及授予擔任角色許可的角色信任政策。

  • get-user – 擷取指定 IAM 使用者的相關資訊,包括使用者的建立日期、路徑、唯一 ID 和 ARN。

  • list-access-keys – 傳回與指定 IAM 使用者相關聯之存取金鑰 IDs 的相關資訊。

  • list-attached-role-policies – 列出連接至指定 IAM 角色的所有受管政策。

  • list-attached-user-policies – 列出連接至指定 IAM 使用者的所有受管政策。

  • list-entities-for-policy – 列出指定受管政策連接的所有本機 IAM 使用者、群組和角色。

    • --EntityFilter:僅支援 userrole 值。

  • list-policies – 列出您本機中提供的所有受管政策AWS 帳戶。支援下列參數:

    • --PolicyUsageFilter

  • list-roles – 列出具有指定路徑字首的本機 IAM 角色。

  • list-users – 列出具有指定路徑字首的 IAM 使用者。

  • update-access-key – 將指定存取金鑰的狀態從作用中變更為非作用中,反之亦然。

  • update-assume-role-policy – 更新授予 IAM 實體擔任角色許可的政策。

  • update-role – 更新角色的描述或工作階段持續時間上限設定。

  • update-user – 更新指定 IAM 使用者的名稱和/或路徑。

Snowball Edge 上支援的 IAM API 操作

以下是您可以與 Snowball Edge 搭配使用的 IAM API 操作,其中包含 IAM API 參考中其描述的連結。

  • AttachRolePolicy – 將指定的受管政策連接至指定的 IAM 角色。

  • AttachUserPolicy – 將指定的受管政策連接至指定的使用者。

  • CreateAccessKey – 為指定的使用者建立新的本機 IAM 私密存取金鑰和對應的AWS存取金鑰 ID。

  • CreatePolicy – 為您的裝置建立新的 IAM 受管政策。

  • CreateRole – 為您的裝置建立新的本機 IAM 角色。

  • CreateUser – 為您的裝置建立新的本機 IAM 使用者。

    支援下列參數:

    • Tags

    • PermissionsBoundary

  • DeleteAccessKey – 刪除指定的存取金鑰。

  • DeletePolicy – 刪除指定的受管政策。

  • DeleteRole – 刪除指定的角色。

  • DeleteUser – 刪除指定的使用者。

  • DetachRolePolicy – 從指定的角色移除指定的受管政策。

  • DetachUserPolicy – 從指定的使用者移除指定的受管政策。

  • GetPolicy – 擷取指定受管政策的相關資訊,包括政策的預設版本,以及附加政策的本機 IAM 使用者、群組和角色總數。

  • GetPolicyVersion – 擷取指定受管政策指定版本的相關資訊,包括政策文件。

  • GetRole – 擷取指定角色的相關資訊,包括角色的路徑、GUID、ARN,以及授予擔任角色許可的角色信任政策。

  • GetUser – 擷取指定 IAM 使用者的相關資訊,包括使用者的建立日期、路徑、唯一 ID 和 ARN。

  • ListAccessKeys – 傳回與指定 IAM 使用者相關聯之存取金鑰 IDs 的相關資訊。

  • ListAttachedRolePolicies – 列出連接至指定 IAM 角色的所有受管政策。

  • ListAttachedUserPolicies – 列出連接至指定 IAM 使用者的所有受管政策。

  • ListEntitiesForPolicy – 擷取指定 IAM 使用者的相關資訊,包括使用者的建立日期、路徑、唯一 ID 和 ARN。

    • --EntityFilter:僅支援 userrole 值。

  • ListPolicies – 列出本機 中提供的所有受管政策AWS 帳戶。支援下列參數:

    • --PolicyUsageFilter

  • ListRoles – 列出具有指定路徑字首的本機 IAM 角色。

  • ListUsers – 列出具有指定路徑字首的 IAM 使用者。

  • UpdateAccessKey – 將指定存取金鑰的狀態從作用中變更為非作用中,反之亦然。

  • UpdateAssumeRolePolicy – 更新授予 IAM 實體擔任角色許可的政策。

  • UpdateRole – 更新角色的描述或工作階段持續時間上限設定。

  • UpdateUser – 更新指定 IAM 使用者的名稱和/或路徑。

Snowball Edge 上支援的 IAM 政策版本和文法

以下是 IAM 政策的本機 IAM 支援版本 2012-10-17 和政策文法的子集。

Policy type (政策類型) 支援的文法
以身分為基礎的政策 (使用者/角色政策) "Effect"、"Action" 和 "Resource"
注意

本機 IAM 不支援 "Condition"、"NotAction"、"NotResource" 和 "Principal"。

以資源為基礎的政策 (角色信任政策) "Effect"、"Action" 和 "Principal"
注意

對於主體,僅允許AWS 帳戶 ID 或主體 ID。

Snowball Edge 上的 IAM 政策範例

注意

AWS Identity and Access Management(IAM) 使用者需要"snowballdevice:*"許可才能使用AWS OpsHub for Snow Family應用程式來管理 Snowball Edge。

以下是授予 Snowball Edge 裝置許可的政策範例。

允許透過 IAM API 在 Snowball Edge 上對範例使用者進行 GetUser 呼叫

使用下列政策允許範例使用者透過 IAM API 呼叫 GetUser。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "iam:GetUser", "Resource": "arn:aws:iam::111122223333:user/example-user" } ] }

允許完整存取 Snowball Edge 上的 Amazon S3 API

使用下列政策允許完整存取 Amazon S3 API。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "s3:*", "Resource": "*" } ] }

允許對 Snowball Edge 上的 Amazon S3 儲存貯體進行讀取和寫入存取

使用下列政策允許對特定儲存貯體的讀取和寫入存取權。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ListObjectsInBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::bucket-name" }, { "Sid": "AllObjectActions", "Effect": "Allow", "Action": "s3:*Object", "Resource": "arn:aws:s3:::bucket-name/*" } ] }

允許在 Snowball Edge 上列出、取得和放置對 Amazon S3 儲存貯體的存取權

使用下列政策允許清單、取得和放置特定 S3 儲存貯體的存取權。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:List*" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }

允許完整存取 Snowball Edge 上的 Amazon EC2 API

使用下列政策允許完整存取 Amazon EC2。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:*", "Resource": "*" } ] }

允許存取啟動和停止 Snowball Edge 上的 EC2-compatible執行個體

使用下列政策允許啟動和停止 Amazon EC2 執行個體的存取權。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances" ], "Resource": "*" } ] }

拒絕對 DescribeLaunchTemplates 的呼叫,但允許對 Snowball Edge 上的 DescribeImages 的所有呼叫

使用下列政策拒絕對 DescribeLaunchTemplates 的呼叫,但允許對 DescribeImages 的所有呼叫。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "ec2:DescribeLaunchTemplates" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:DescribeImages" ], "Resource": "*" } ] }

Snowball Edge 上 API 呼叫的政策

列出 Snow 裝置上可用的所有受管政策,包括您自己的客戶定義受管政策。list-policies 中的更多詳細資訊。

aws iam list-policies --endpoint http://ip-address:6078 --region snow --profile snowballEdge { "Policies": [ { "PolicyName": "Administrator", "Description": "Root user admin policy for Account 123456789012", "CreateDate": "2020-03-04T17:44:59.412Z", "AttachmentCount": 1, "IsAttachable": true, "PolicyId": "policy-id", "DefaultVersionId": "v1", "Path": "/", "Arn": "arn:aws:iam::123456789012:policy/Administrator", "UpdateDate": "2020-03-04T19:10:45.620Z" } ] }

Snowball Edge 上的 TrustPolicy 範例

信任政策會傳回一組臨時安全登入資料,可用來存取您通常無法存取AWS的資源。這些臨時登入資料由存取金鑰 ID、私密存取金鑰和安全字符組成。通常,您可以在帳戶中使用 AssumeRole 進行跨帳戶存取。

下列是信任政策的範例。如需信任政策的詳細資訊,請參閱 AWS Security Token Service API 參考中的 AssumeRole

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root" ] }, "Action": [ "sts:AssumeRole" ] } ] }