安全訪問跨帳戶使用實例配置文件和一個運動AssumeRole政策

在AWS您可以設置cross-account訪問,所以計算在一個帳戶可以訪問AWS服務在另一個帳戶。授權訪問的一種方法,描述了安全訪問S3 bucket使用實例配置文件給一個帳戶直接訪問服務在另一個帳戶。授權訪問其他服務的另一種方法是讓一個帳戶假設一個角色在另一個帳戶。

考慮AWS帳戶帳戶id< deployment-acct-id >和B AWS帳戶帳號< kinesis-owner-acct-id >。賬戶時使用部署數據磚工作區:EC2服務由該帳戶管理。運動是由賬戶管理B。

本文提供了配置賬戶使用的步驟AWS AssumeRole行動在帳戶B訪問動作角色在帳戶B .啟用這個訪問您執行配置賬戶a和賬戶B的磚管理控製台配置磚集群時,當您運行一個筆記本,訪問動作。

需求

AWS管理員訪問我角色和策略的AWS帳戶磚部署和運動的AWS帳戶服務。

步驟1:設置cross-account角色動作

  1. 在你運動AWS帳戶,去我的服務並單擊角色選項卡。

  2. 點擊創建角色。在選擇類型的信任實體麵板中,單擊另一個AWS帳戶。粘貼在磚AWS帳戶的帳戶ID,< deployment-acct-id >。可選地,您可以指定一個外部ID,但不是必需的。

  3. 點擊下一個:權限並給這個角色權限訪問動作。您可以提供您自己的JSON或使用AmazonKinesisFullAccess政策。

  4. 點擊下一個:審查給角色一個名字,例如KinesisCrossAccountRole

  5. 點擊創建角色。角色的列表顯示。

  6. 在角色列表中,點擊KinesisCrossAccountRole並驗證信任帳戶包含一個JSON政策:

    {“版本”:“2012-10-17”,“聲明”:({“效應”:“允許”,“校長”:{“AWS”:(“攻擊:aws:我::< deployment-acct-id >:根”),“服務”:“ec2.amazonaws.com”},“行動”:“sts: AssumeRole”}]}
  7. 複製攻擊的角色,例如:攻擊:aws:我::< kinesis-owner-acct-id >: / KinesisCrossAccountRole角色

步驟2:在磚部署的賬戶設置假設的作用

  1. 在磚部署AWS帳戶,去我服務並單擊角色選項卡。

  2. 點擊創建角色。在選擇類型的信任實體麵板中,單擊AWS服務並單擊EC2服務。

  3. 點擊下一個:權限

  4. 點擊下一個:審查給角色一個名字,例如DatabricksToKinesisAssumeRole

  5. 點擊創建角色。角色的列表顯示。

  6. 在角色列表中,點擊DatabricksToKinesisAssumeRole

  7. 權限選項卡上,單擊內聯政策

  8. 單擊JSON選項卡。

  9. 複製這個政策並粘貼在攻擊你的角色KinesisCrossAccountRole從步驟1資源字段:

    {“版本”:“2012-10-17”,“聲明”:({“席德”:“Stmt1487884001000”,“效應”:“允許”,“行動”:(“sts: AssumeRole”),“資源”:(“攻擊:aws:我::< kinesis-owner-acct-id >: / KinesisCrossAccountRole”角色]}]}
  10. 點擊審查政策

  11. 在Name字段中,輸入一個策略名稱,例如DatabricksToKinesisAssumeRole

  12. 點擊創建政策

  13. 選擇DatabricksToKinesisAssumeRole。保存實例配置文件是使用在步驟3中,並保存的作用是用於下一步。

  14. 更新的政策角色用於部署你的磚工作區並添加我:PassRole行動的政策。的我:PassRole應該使用的角色攻擊行動DatabricksToKinesisAssumeRole您剛剛創建的這一步。保存後,你應該有一個政策是這樣的:

    {“版本”:“2012-10-17”,“聲明”:({“席德”:“Stmt1403287045000”,“效應”:“允許”,“行動”:(“ec2: AssociateDhcpOptions”,“ec2: AssociateRouteTable”,“ec2: AttachInternetGateway”,“ec2: AttachVolume”),“資源”:(“*”]},{“效應”:“允許”,“行動”:“我:PassRole”,“資源”:(“攻擊:aws:我::< deployment-acct-id >: / DatabricksToKinesisAssumeRole”角色]}]}

步驟3:添加實例配置文件DatabricksToKinesisAssumeRole對磚

  1. 管理控製台

  2. 單擊實例配置文件選項卡。

  3. 添加實例配置文件DatabricksToKinesisAssumeRole在步驟2中使用了實例配置文件是你救了,攻擊:aws:我::< deployment-acct-id >: instance-profile / DatabricksToKinesisAssumeRole

步驟4:創建一個集群實例配置文件

  1. 選擇或創建一個集群。

  2. 打開高級選項部分。

  3. 實例選項卡上,選擇實例配置文件在步驟3中添加DatabricksToKinesisAssumeRole

  4. 啟動集群。

第五步:驗證連接動作

  1. 創建一個筆記本和將其附加到您在步驟4中創建的集群。

  2. 配置roleArn選擇的火花readStream方法使用指定的假設的作用(KinesisCrossAccountRole)我的角色你連接到集群(DatabricksToKinesisAssumeRole):

    運動=火花readStream\格式(“運動”)\選項(“streamName”,“testStream”)\選項(“地區”,“us-east-1”)\選項(“roleArn”,“攻擊:aws:我::< kinesis-owner-acct-id >: / KinesisCrossAccountRole”角色)\選項(“initialPosition”,“最早”)\負載()顯示(運動)

    代碼示例假設動作流的名字testStream和它駐留在us-east-1地區。如果你創建的KinesisCrossAccountRole與外部ID,添加以下選擇:

    選項(“roleExternalId”,“myExternalCode”)

    如果您創建了一個VPC端點運動服務,添加以下選項。取代<地區>VPC端點與AWS地區:

    選項(“stsEndpoint”,“sts <地區> .amazonaws.com”。)
  3. 檢查一個有效的結果如下:

    活躍的運動流