无法从 terraform 代码创建 s3 存储桶来创建 s3 存储桶。我有代码
uses: hashicorp/terraform-github-actions/init@v0.4.0
env:
TF_ACTION_WORKING_DIR: 'terraform'
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
它适用于我的 aws。但在我的组织中,我们将 MFA 用于帐户。我们为 MFA 使用了虚拟令牌生成器,并拥有密钥和 ARN。
在生成令牌和角色方面需要帮助。它已经在 githubactions 的任何库中了吗?
我有这个脚本来创建 aws 令牌和角色。
unset AWS_ACCESS_KEY_ID
unset AWS_SECRET_ACCESS_KEY
unset AWS_SESSION_TOKEN
export AWS_ACCESS_KEY_ID=<<YOUR_KEY>>
export AWS_SECRET_ACCESS_KEY=<<YOUR_SECRET>>
aws sts get-session-token --duration-seconds 36000 \
--serial-number arn:aws:iam::<<YOUR_IAM_ACCOUNT_NUMBER>>:mfa/<<YOUR_IAM_ACCOUNT>> \
--token-code <<YOUR_MFA_OTP>> \
--output json
export AWS_ACCESS_KEY_ID=<<GET_FROM_JSON>>
export AWS_SECRET_ACCESS_KEY=<<GET_FROM_JSON>>
export AWS_SESSION_TOKEN=<<GET_FROM_JSON>>
aws sts assume-role --role-arn arn:aws:iam::<<YOUR_DEV_ACCOUNT_NUMER>>:role/<<YOUR_ROLE>> \
--role-session-name <<YOUR_ROLE>> \
--duration 3600 \ --output json
export AWS_ACCESS_KEY_ID=<<GET_FROM_JSON>>
export AWS_SECRET_ACCESS_KEY=<<GET_FROM_JSON>>
export AWS_SESSION_TOKEN=<<GET_FROM_JSON>>
需要在 github 操作中执行此操作。
我们从虚拟 MFA 自动化了 MFA 令牌。如下所示:
export AWS_SECRET_ACCESS_KEY="${env.AWS_SECRET_ACCESS_KEY}"
MFA="\$(oathtool --base32 --totp ${env.MFA_KEY})"
那么github中有没有简单的方法。